标题:[求助]吸血鬼数字
只看楼主
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
 问题点数:0 回复次数:14 
[求助]吸血鬼数字

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编辑过]

搜索更多相关主题的帖子: 吸血鬼 数字 public args 
2007-07-24 19:10
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
得分:0 
不太理解“其中从偶数位数字中选取的数字可以任意排列”

1260=21*60
这个怎么解释?
2007-07-24 19:18
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 

1260 就是那个要求的偶位数(在这里就是四位数)
1 2 6 0四个数随便选两个数字组成一个二位数 两外两个组成另一个二位数 这四个字可任意排列
1260 就是那个四位数 21 和 60 不就是那两个二位数?还不懂?


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-07-24 20:08
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
得分:0 
偶数位数字中选取的数字

这个限制 是什么意思?

方法似乎只能用穷举吧


2007-07-24 20:18
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 

啊啊啊啊啊啊啊啊啊啊啊 谁给个办法啊啊啊啊啊啊啊


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-07-24 22:50
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
啊啊啊啊啊啊啊啊啊啊啊 谁给个办法啊啊啊啊啊啊啊
怎么没人知道这个题怎么解答?

爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-07-25 12:07
大男孩
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-22
得分:0 
是指位数为偶数的数字 这个什么意思?

2007-07-25 12:23
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
回复:(大男孩)是指位数为偶数的数字 这个什么意思?...

啊 位数为偶数的数字 在这里就是那个四位数啊


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-07-25 13:18
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
得分:0 
QUOTE:
以下是引用可可熊在2007-7-24 19:18:21的发言:
不太理解“其中从偶数位数字中选取的数字可以任意排列”

1260=21*60
这个怎么解释?

不太理解“其中从偶数位数字中选取的数字可以任意排列

2007-07-25 20:51
弑神饕餮
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-6-6
得分:0 
回复:(可可熊)以下是引用可可熊在2007-7-24 19:18:...

服了 我都说成这样了你都没理解我也没办法了 这题也不是我出的 书上就这么写的 我就不明白了 有什么不理解的? 晕了~~~


爱情如潮水般滚滚迩来,总有一天滚滚滚回去!!天长地久惟有java!
2007-07-25 21:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-157811-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012675 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved