问题:
水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身。
例如:1^3+5^3+3^3=153.
求100~999之间所有的水仙花数。
运行代码如下:
package ch1;
public class Ch3_2 {
public static int ta(int n) {
int m=1;
for(int i=0;i<3;i++) {//循环3次实现3次连乘
m=m*n;
}
return m;//返回结果
}
public static void main(String[] args) {//创建主方法
int i,a,b,c;
int count = 0;//计数器
for(i=100;i<=999;i++) {//所有的3位数循环一次
a=i/100;//a代表百位上的数字
b=i/10%10;//b代表十位上的数字
c=i%10;//c代表个位上的数字
if(ta(a)+ta(b)+ta(c)==i) {//水仙花条件判断
System.out.println(i+"是水仙花数。");
count++;//计数器加1
}
}
System.out.println("\n一共有"+count+"个这样的数字");//输出统计数字
}
}