public class xixuegui {
public static void main (String[] args) {
int i,j,k,a,b,c,d,n,m;
for(i=1001;i<9999;i++){
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i-a*1000-b*100-c*10;
for(j=1;j<10;j++){
for(k=0;k<10;k++){
if(i==(j*1000)+(k*100)) continue;
}
}
if(i==(a*10+b)*(c*10+d)) System.out.println(i+"is xixuegui");
if(i==(a*10+b)*(d*10+c)) System.out.println(i+"is xixuegui");
if(i==(b*10+a)*(c*10+d)) System.out.println(i+"is xixuegui");
if(i==(b*10+a)*(d*10+c)) System.out.println(i+"is xixuegui");
if(i==(a*10+c)*(b*10+d)) System.out.println(i+"is xixuegui");
if(i==(a*10+c)*(d*10+b)) System.out.println(i+"is xixuegui");
if(i==(c*10+a)*(b*10+d)) System.out.println(i+"is xixuegui");
if(i==(c*10+a)*(d*10+b)) System.out.println(i+"is xixuegui");
if(i==(a*10+d)*(b*10+c)) System.out.println(i+"is xixuegui");
if(i==(a*10+d)*(c*10+b)) System.out.println(i+"is xixuegui");
if(i==(d*10+a)*(b*10+c)) System.out.println(i+"is xixuegui");
if(i==(d*10+a)*(c*10+b)) System.out.println(i+"is xixuegui");
if(i==(b*10+c)*(a*10+d)) System.out.println(i+"is xixuegui");
if(i==(b*10+c)*(d*10+a)) System.out.println(i+"is xixuegui");
if(i==(c*10+b)*(a*10+d)) System.out.println(i+"is xixuegui");
if(i==(c*10+b)*(d*10+a)) System.out.println(i+"is xixuegui");
}
}
}
求助各位啊~~~这是我刚写的一个输出4位数"吸血鬼数字"的程序,虽然可以正确输出,但是我觉着这个做法太麻烦了,想得到一个简化代码的而且高效的方法,而且我这程序实际可以说还没完成,因为输出有重复,而我不希望有重复,虽然我知道一个方法,可是由于代码太多我实在觉得那样写出来有点丢人,所以求助各位帮帮我啦,小弟感激不尽~~~~~~
差点忘了,所谓“吸血鬼数字”就是指位数为偶数的数字(我们算得是4位的),可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数字,其中从偶数位数字中选取的数字可以任意排列。以两个0截尾的数字是不允许的,例如:
1260=21*60
1827=21*87
2187=27*81
等等。
大家帮帮忙啊~~~~~小弟感激不尽啊~~~
[此贴子已经被作者于2007-7-24 19:12:41编辑过]