分析:
什么是水仙花数?
所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 1*1*1 + 5*5*5 + 3*3 *3
A:三位数其实就告诉了我们水仙花数的范围
100-999
B:如何获取一个数据的每一个位上的数?
举例:我有一个数据153,请问如何获取到个位,十位,百位
个位:153*10 = 3;
十位:153/10%10 = 5;
百位:153/10/10%10 = 1;
千位:...
万位:...
以此类推
C:让每个位上的立方和相加,并和该数据进行比较,如果有相等,就说明该数据是水仙花数,在控制台输出。
代码主体:
//主方法
public static void main(String[] args) {
//定义一个统计变量,初始化值是0。
int count = 0;
//通过循环获取到每一个三位数(通过分析A知道数字的范围)
for (int i = 100; i < 1000; i++) {
//获取个位,十位,百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
//让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数。
if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {
//每找到一个水仙花数统计变量+1
count++;
//在控制台输出
System.out.println(i);
}
}
System.out.println("水仙花数共有" + count + "个");
}
控制台输出结果
153
370
371
407
水仙花数共有4个