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编辑过]
----------------解决方案--------------------------------------------------------
不太理解“其中从偶数位数字中选取的数字可以任意排列”
1260=21*60
这个怎么解释?
----------------解决方案--------------------------------------------------------
1260 就是那个要求的偶位数(在这里就是四位数)
1 2 6 0四个数随便选两个数字组成一个二位数 两外两个组成另一个二位数 这四个字可任意排列
1260 就是那个四位数 21 和 60 不就是那两个二位数?还不懂?
----------------解决方案--------------------------------------------------------
偶数位数字中选取的数字
这个限制 是什么意思?
方法似乎只能用穷举吧
----------------解决方案--------------------------------------------------------
啊啊啊啊啊啊啊啊啊啊啊 谁给个办法啊啊啊啊啊啊啊
----------------解决方案--------------------------------------------------------
啊啊啊啊啊啊啊啊啊啊啊 谁给个办法啊啊啊啊啊啊啊
怎么没人知道这个题怎么解答?
----------------解决方案--------------------------------------------------------
是指位数为偶数的数字 这个什么意思?
----------------解决方案--------------------------------------------------------
啊 位数为偶数的数字 在这里就是那个四位数啊
----------------解决方案--------------------------------------------------------
不太理解“其中从偶数位数字中选取的数字可以任意排列”
1260=21*60
这个怎么解释?
不太理解“其中从偶数位数字中选取的数字可以任意排列
----------------解决方案--------------------------------------------------------
服了 我都说成这样了你都没理解我也没办法了 这题也不是我出的 书上就这么写的 我就不明白了 有什么不理解的? 晕了~~~
----------------解决方案--------------------------------------------------------