1、打印出1~10000范围中所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
- 例如,153是一个“水仙花数”,因为153=(13+53+33)。
- 注意,是3位数。注意审题。
public class T1 {
public static void main(String[] args) {
int i,g,s,b,q,w;
for(i=1;i<=10000;i++) {
// 求各个位数字
// 法一:
w=i/10000;
q=i/1000-10*w;
b=i/100-q*10-w*100;
s=i/10-b*10-q*100-w*1000;
g=i-s*10-b*100-q*1000-w*10000;
// 法二:
w=i/10000;
q=i/1000%10;
b=i/100%10;
s=i/10%10;
g=i%10;
if(w==0&&q==0&&i==g*g*g+s*s*s+b*b*b+q*q*q+w*w*w) {
System.out.println(i+"\t");
}
}
}
}
程序执行结果:
1
153
370
371
407