用于判断阿姆斯特朗数的 Java 程序

在这个程序中,您将学习检查给定的数是否是阿姆斯特朗数。您将在 Java 中通过使用 for 循环和 while 循环来做到这一点。

要理解此示例,您应该具备以下 Java 编程的知识:

如果一个 n 位正整数等于其各位数字的 n 次方之和,则称该数为阿姆斯特朗数。

如果是 3 位数的阿姆斯特朗数,则每位数的立方的和等于该数本身。例如 153 是一个阿姆斯特朗数。因为: 153 = 1*1*1 + 5*5*5 + 3*3*3

示例 1:检查一个 3 位数是否阿姆斯特朗数

public class Armstrong {

    public static void main(String[] args) {

        int number = 371, originalNumber, remainder, result = 0;

        originalNumber = number;

        while (originalNumber != 0)
        {
            remainder = originalNumber % 10;
            result += Math.pow(remainder, 3);
            originalNumber /= 10;
        }

        if(result == number)
            System.out.println(number + " 是阿姆斯特朗数。");
        else
            System.out.println(number + " 不是阿姆斯特朗数。");
    }
}

输出

371 是阿姆斯特朗数。
  • 首先,给定数字 number 的值存储在另一个整数变量 originalNumber 中, 这是因为,我们需要在最后比较最终数字和原始数字的值。
  • 然后,使用 while 循环来循环 originalNumber 直到等于 0。
    • 在每次迭代中,最后一位数存储在 remainder.
    • 然后, 使用 Math.pow() 函数求出该数字的 3 次方.
    • 然后,originalNumber 通过除以 10 后去除已经处理的最有一位。
  • 最后, resultnumber 被比较。如果相等,则为阿姆斯特朗数。如果不想等,那就不是。

示例 2:检查一个 n 位数是否阿姆斯特朗数

public class Armstrong {

    public static void main(String[] args) {

        int number = 1634, originalNumber, remainder, result = 0, n = 0;

        originalNumber = number;

        for (;originalNumber != 0; originalNumber /= 10, ++n);

        originalNumber = number;

        for (;originalNumber != 0; originalNumber /= 10)
        {
            remainder = originalNumber % 10;
            result += Math.pow(remainder, n);
        }

        if(result == number)
            System.out.println(number + " 是阿姆斯特朗数。");
        else
            System.out.println(number + " 不是阿姆斯特朗数。");
    }
}

输出

1634 是阿姆斯特朗数。

在这个程序中,我们没有使用 while 循环,而是使用了两个 for 循环。

第一个 for 循环用于计算数字中的位数。它是以下的浓缩形式:

for (;originalNumber != 0; originalNumber /= 10, ++n);

然后第二个 for 循环在每次迭代中累加到 result,余数由位数 n 决定.

访问此页面以了解如何显示两个间隔之间的所有阿姆斯特朗数字