问题解析:
所谓水仙花数就是一个数等于组成该数各个位的立方和,例如370=3^3+7^3。由于计算量比较小,可以使用简单的循环语句来完成。对于不同位数的数字,可以进行分段讨论。
代码实现:
package com.java.test;
public class Demo9 {
public static void main(String[] args) {
//计算0~9中的水仙花数
for (int i = 0; i < 10; i++) {
if(i == Math.pow(i, 3)) {
System.out.println(i + "是水仙花数");
}
}
//计算10~99中的水仙花数
for (int i = 10; i < 100; i++) {
int a = i/10; //获得十位上的数字
int b = i%10; //获得个位上的数字
if(i == (Math.pow(a, 3) + Math.pow(b, 3))) {
System.out.println(i + "是水仙花数");
}
}
//计算100~999中的水仙花数
for (int i = 100; i < 1000; i++) {
int a = i/100;
int b = i/10%10;
int c = i%10;
if(i == (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3))) {
System.out.println(i + "是水仙花数");
}
}
}
}