/**
* 打印 10000 以内的所有水仙花数
*
* 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。
* 例如:153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3
*
* 1) 检查一个数num是否为水仙花数
* 2) 检查一个范围内全部的num是否为水仙花数
*
* num = 153;
* n1 = 1 = num/10/10%10
* n2 = 5 = num/10%10
* n3 = 3 = num%10
*
* sum = 0; //每个数字3次方的累加和
*
* n = num%10; //n = 3 取最后一位
* num = num/10;//num = 15 消掉最后一位
* sum+= n*n*n
*
* n = num%10; //n= 5 取最后一位
* num = num/10;//num = 1 消掉最后一位
* sum+= n*n*n
*
* n = num%10; //n= 1 取最后一位
* num = num/10;//num = 0 消掉最后一位
* sum+= n*n*n
*
* num==0 结束
* sum 3次方的累加和
* sum == num 相等 num 是水仙花数
*/
public class Demo04 {
public static void main(String[] args) {
for(int number=2; number<=100000; number++){
int num = number;
int sum = 0;
while(true){
int n = num%10;
num /= 10;//num = num/10;
sum += n*n*n;
//System.out.println("n:"+n);//跟踪语句,跟踪n
if(num==0){
break;
}
}
if(sum==number){
System.out.print(number+" ");
}
}
}
}
希望能帮到你 望采纳!
收起
作业帮用户
2017-07-31
举报