Java实现求解0到10000内的水仙花数
水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
Java实现如下:
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 0; i <= 10000; i++) {
if (isNarcissisticNumber(i)) {
System.out.print(i + " ");
}
}
}
public static boolean isNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == n;
}
}
解析:
首先,我们使用for循环枚举0到10000内的所有数字。对于每个数字,我们调用isNarcissisticNumber方法来判断它是否是水仙花数。如果是,就输出这个数。
isNarcissisticNumber方法的实现比较简单。我们使用while循环来计算这个数的每个位上的数字的立方和。具体来说,我们使用模运算和除法来依次取出这个数的每个位上的数字。然后,我们将这个数字的立方加到sum变量中。最后,我们判断sum是否等于这个数,如果是,就返回true;否则返回false。
最终输出的结果为:
0 1 153 370 371 407
原文地址: https://www.cveoy.top/t/topic/m4kp 著作权归作者所有。请勿转载和采集!