水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,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

Java实现求解0到10000内的水仙花数

原文地址: https://www.cveoy.top/t/topic/m4kp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录