题目
求出1000以内的所有水仙花数
水仙花数规则
水仙花数(Narcissistic number)
也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、
自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
例如:1^3 + 5^3+ 3^3 = 153。
代码内容
exercise包下的DaffodilDemo类
package exercise;
import static java.lang.Math.*;
public class DaffodilDemo {
/**
* @param args 水仙花数(Narcissistic number)
* 也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、
* 自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),
* 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
* 例如:1^3 + 5^3+ 3^3 = 153。
* @content 求出1000以内的所有水仙花数
*/
public static void main(String[] args) {
int n = 0, a, b, c; //n:水仙花总数 a:个位数 b:十位数 c:百位数
for (int i = 100; i < 1000; i++) {
a = i % 10; //个位
b = (i / 10) % 10; //十位
c = i / 100; //百位
//判断是否为水仙花
if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i) {
System.out.println(i); //输出水仙花数
n++; //水仙花总数加一
}
}
System.out.println("1000以内的水仙花总数为:" + n);
}
}
运行结果
总结
Java小白,注释的一塌糊涂