早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用java帮忙改一下这道题目3.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两

题目详情
用java帮忙改一下这道题目
3.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,
只记下车号的一些特征。甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索编程求出车号。(30分)
public class chehao {
public static int a;
public static int b;
public static int c;
public static int d;
public static int e;
public static int s;
public static void main(String args[])
{
a=(int)(1+Math.random()*9);
b=(int)(1+Math.random()*9);
c=(int)(1+Math.random()*9);
d=(int)(1+Math.random()*9);

s=a*1000+b*100+c*10+d*1;

if(a==b&&c==d&&s==e*e&&c!=b)
{
System.out.println("车牌号"+s);
}

}
}
▼优质解答
答案和解析
楼主,你好,这段程序的思想是通过随机生成车牌的4位数,然后对三个条件进行过滤。理论上能够实现。但是这样的效率非常低下。
而且程序中的变量e定义以后没有赋值,int型的变量默认是0。你的if中e*e就恒等于0。因此上面这段程序找不到符合要求的车牌号码。
因此,我们换一种思路。从甲乙丙三人的描述中,车牌是一个4位号码(有可能以0开头)。因此我们只要遍历0000到9999这一万个数字,分离出数字中的各个位数,然后进行判断即可得出。但是这要循环一万次,其实我们还可以循环更少的次数。
从甲和乙的口中得知,我们的车号只可能是AABB的形式。也就是1122,3344等的形式。因此,我们只要设置一个双层循环,每层循环都循环10次,就可以生成所有AABB形式的4位数。请详细看下面的代码:
public static void main(String[] args) {
//外层循环用于生成千位和百位
for(int i = 0 ; i <= 9 ; i ++)
{
//内层循环用于生成十位和个位
for(int j = 0 ; j <= 9 ; j ++)
{
//根据乙说的,千位和个位的数字如果相同,则continue,过滤掉。
if(i == j )
{
continue;
}
//至此我们生成符合甲,乙所说条件的数字为i+i+j+j,注意中间注意添加空串分割,否则计算机会把i和j当成数字求和。这样加起来是一个字符串,我们还要把它转换成整型,通过 Integer.parseInt 方法;
int s = Integer.parseInt(i+""+i+""+j+""+j);
//如果满足丙说的条件Math.sqrt为开平方方法。
if((int)Math.sqrt(s) == Math.sqrt(s))
{
//打印符合要求的车牌号。
System.out.println("车牌号为:"+s);
}
}
}
}
那么这段代码的最终执行结果为:
车牌号为:7744
看了用java帮忙改一下这道题目3...的网友还看了以下:

快车和慢车由a地开往b地,快车只用2小时,慢车要用3小时.上午8时两车同时从a地出发开往乙地,到什  2020-05-14 …

某班级开展植树活动而分为甲乙两个组,甲队29人,乙队19人,调来12人,怎样分配才能使甲队是乙队的  2020-05-16 …

有甲、乙两桶油,甲油的质量是乙油的两倍,若从甲桶取2.5千克放到乙桶中,这时甲乙两桶油质量相等.问  2020-05-21 …

一农场有甲、乙两台打谷机,甲机的工作效率是乙机的两倍,若甲机打完全部谷子的2/3后,乙机继续打,所  2020-06-06 …

化学(难)乙炔和乙酸加成反应,是乙酸的O-H键断裂分别加在乙炔的两个碳上,产物有两种表示方法(1)  2020-06-10 …

取两个相同的验电器甲和乙,使甲带电,乙不带电。用带绝缘柄的金属棒将甲和乙上的两金属球连接起来,则甲  2020-06-18 …

1.甲比乙多栽25棵树,如果乙栽的树中有6可算甲的,那么甲栽的树就是乙栽的两倍,甲乙两人各栽几棵树  2020-06-25 …

取两个相同的验电器甲和乙,使甲带电,乙不带电。用带绝缘柄的金属棒将甲和乙上的两金属球连接起来,则甲  2020-07-11 …

取两个相同的验电器甲和乙,使甲带电,乙不带电,用带绝缘柄的金属棒将甲和乙上的两金属球连接起来,则甲  2020-07-11 …

A,B两地相局距850千米.甲乙辆车同时从A,B两地相对开出,经过5小时后辆车相遇A,B两地相局距  2020-07-21 …