如何用Java输出所有四叶玫瑰数

如何用Java输出所有四叶玫瑰数

作者:Joshua Lee发布时间:2026-02-10阅读时长:0 分钟阅读次数:31

用户关注问题

Q
什么是四叶玫瑰数?

我在Java程序中需要找到所有四叶玫瑰数,能否解释一下四叶玫瑰数的定义?

A

四叶玫瑰数的定义

四叶玫瑰数是一种特殊的数字,它满足每个数字的四次方和等于该数字本身。例如,对于一个四位数abcd,若满足a^4 + b^4 + c^4 + d^4 = abcd,则称其为四叶玫瑰数。在编程中,这种数通常也被称为阿姆斯特朗数或水仙花数的一种。

Q
如何用Java高效查找所有四叶玫瑰数?

我想编写Java程序输出所有四叶玫瑰数,有什么方法可以提高效率吗?

A

查找四叶玫瑰数的高效方法

由于四叶玫瑰数的范围有限,可以通过遍历四位数(1000至9999)进行检测。先将数字拆分成各个位,然后计算每个数字的四次方和,比较是否等于原数字。为了提高效率,可以先预计算每个0-9的四次方,避免每次重复计算。

Q
Java示例代码如何实现输出所有四叶玫瑰数?

有没有简单的Java代码示例,帮助我理解如何输出所有四叶玫瑰数?

A

Java代码示例输出四叶玫瑰数

下面是一个示例代码:

public class FourLeafRose {
    public static void main(String[] args) {
        int[] powers = new int[10];
        for (int i = 0; i < 10; i++) {
            powers[i] = (int) Math.pow(i, 4);
        }
        for (int num = 1000; num <= 9999; num++) {
            int sum = 0;
            int temp = num;
            while (temp > 0) {
                int digit = temp % 10;
                sum += powers[digit];
                temp /= 10;
            }
            if (sum == num) {
                System.out.println(num);
            }
        }
    }
}

代码先预计算了0-9的四次方值,然后逐个测试四位数是否满足条件,满足则输出。