欢迎光临
我们一直在努力

java中水仙花数怎么求

什么是水仙花数

水仙花数(Narcissistic number)是指一个n位数,它的每个位上的数字的n次幂之和等于它本身,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153,这个概念最早可以追溯到古希腊数学家阿基米德(Archimedes)的研究。

如何统计水仙花数

要统计水仙花数,我们可以采用以下几种方法:

1、遍历所有三位数的水仙花数:

public static void main(String[] args) {
    for (int i = 100; i < 1000; i++) {
        int a = i / 100; // 百位数
        int b = (i % 100) / 10; // 十位数
        int c = i % 10; // 个位数
        if (i == (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3))) {
            System.out.println(i);
        }
    }
}

2、利用for循环遍历所有n位数的水仙花数:

public static void main(String[] args) {
    int n = 3; // 可以修改为其他位数
    for (int i = 100; i < Integer.MAX_VALUE; i++) {
        StringBuilder numStr = new StringBuilder(Integer.toString(i));
        while (numStr.length() < n) {
            numStr.insert(0, "0");
        }
        int sum = calculateSum(Integer.parseInt(numStr.toString()));
        if (sum == i) {
            System.out.println(i);
        }
    }
}
private static int calculateSum(int num) {
    int sum = 0;
    int temp = num;
    while (temp != 0) {
        int digit = temp % 10;
        sum += Math.pow(digit, n);
        temp /= 10;
    }
    return sum;
}

相关问题与解答

1、如何判断一个数是否为水仙花数?

可以使用以下方法判断一个数是否为水仙花数:将该数的各位数字提取出来,然后计算各位数字的n次幂之和,如果这个和等于原数,那么这个数就是水仙花数,具体实现可以参考第一种方法。

2、除了三位数的水仙花数,还有哪些n位数的水仙花数?

除了三位数的水仙花数,还有更高位数的水仙花数,四位数的水仙花数有1634,五位数的水仙花数有370、371、407等,可以通过修改遍历范围来统计更高位数的水仙花数。

赞(0) 打赏
未经允许不得转载:九八云安全 » java中水仙花数怎么求

评论 抢沙发