用Java写一个水仙数计算
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:153=1^3+5^3+3^3,370=3^3+7^3+0^3,371=3^3+7^3+1^3等。
下面是Java代码实现:
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 3; // 位数
for (int i = 0; i < Math.pow(10, n); i++) {
int sum = 0;
int num = i;
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, n);
num /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
该程序通过循环遍历所有n位数,对每个数分解出各个位上的数字,计算它们的n次幂之和,并与该数本身进行比较,如果相等则输出该数,即为水仙花数。
原文地址: https://www.cveoy.top/t/topic/bkHn 著作权归作者所有。请勿转载和采集!