用于判断阿姆斯特朗数的 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 后去除已经处理的最有一位。
- 在每次迭代中,最后一位数存储在
- 最后,
result
和number
被比较。如果相等,则为阿姆斯特朗数。如果不想等,那就不是。
示例 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
决定.
访问此页面以了解如何显示两个间隔之间的所有阿姆斯特朗数字。