java中水仙花数怎么求

什么是水仙花数

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

如何统计水仙花数

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

java中水仙花数怎么求

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、如何判断一个数是否为水仙花数?

java中水仙花数怎么求

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

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

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

java中水仙花数怎么求

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/222217.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-16 04:13
Next 2024-01-16 04:20

相关推荐

  • 怎么用c语言输出水仙花数

    使用C语言输出水仙花数,首先需要遍历100-999之间的整数,然后判断每个整数是否为水仙花数。水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

    2023-12-29
    0148

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入