三位的水仙花数共有4个:153,370,371,407;
四位的水仙花数共有3个:1634,820 9474;
五位的水仙花数共有3个:54748,92727,93084;
六位的水仙花数只有1个:548834;
七位的水仙花数共有4个:1741725,4210818,9800817,9926315;
八位的水仙花数共有3个:24678050,24678051,88593477
……
JAVA实现查找1-10000以内水仙花数
public class Test {
public static void main(String args[]){
int i,number,temp;
int count; //水仙花数的位数
int base;
int sum; //水仙花数各位次方的和
for(i=1;i<=10000;i++){//生成一个数
number = i;
//确定数的位数
if(number/10000 > 0){
count = 5;
}else if(number/1000 > 0){
count = 4;
}else if(number/100 > 0){
count = 3;
}else if(number/10 > 0){
count = 2;
}else {
count = 1;
}
switch(count){
case 1: continue;
case 2: continue;
case 3: base = 100;break;
case 4: base = 1000;break;
case 5: base = 10000;break;
default: continue;
}
//System.out.println("位数="+ count);
sum = 0;
int c= count;
for(;c>0;c--){
temp = 1;
for(int j = count;j>0;j--){
//将每位对应次幂存入temp
temp *= number/base ;
}
sum += temp;
number = number%base;
base = base/10;
}
//System.out.println("每为数的次方和="+sum);
if(i == sum){
System.out.println(i+" 是水仙花数");
}
}
}
};
运行结果:
2万+

被折叠的 条评论
为什么被折叠?



