java编的水仙花数??

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:47:14
public class SuiXH
{
public static void main(String args[])
{
int num,i,j,k;
for(num=100;num<=999;num++)
{
i=num%100;
j=((num-i)/10)%10;
k=(num-j*10-i)/100;
if(num==i*i*i+j*j*j+k*k*k)
{
System.out.println(num);
}
}
}
}

这是我编的程序,想问一下
为什么我编译后,程序只输出 407 一个数?
请哪位大虾指点下,小弟不胜感激!!

你从给i赋值的时候就错了.一个3位数对100取余后,结果是他的后两位数.就是说如果这个3位数是123的话,123%100的结果是23而不是你想要求的1.所以给i,j,k赋值的几句代码可以改为:i=num/100;j=num/10%10;k=num%10;这样就没有错误了.

给个例子,如果num为153的话
i=153%100=53
j=((153-53)/10)%10=0
k=(153-0-53)/100=1
所以你得不出正确结果

public class multiple {

public static void main(String[] args) {
int num,i,j,k;
for(num=100;num<=999;num++)
{
i=num/100;
j=(num-100*i)/10;
k=num-100*i-10*j;
if(num==i*i*i+j*j*j+k*k*k)
{
System.out.println(num);
}
}
}

}