# Java 程序检查 Armstrong 号码 > 原文: [https://www.programiz.com/java-programming/examples/armstrong-number](https://www.programiz.com/java-programming/examples/armstrong-number) #### 在此程序中,您将学习检查给定的数字是否为阿姆斯壮数字。 您将通过在 Java 中使用 for 循环和 while 循环学习如何做到这一点。 一个正整数称为阿姆斯特朗数`n`,如果 ```java abcd... = an + bn + cn + dn + ... ``` 对于 3 位的阿姆斯特朗数,每个数字的立方数之和等于数字本身。 例如: ```java 153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 is an Armstrong number. ``` ## 示例 1:检查阿姆斯壮编号为 3 位数字 ```java 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 + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); } } ``` 运行该程序时,输出为: ```java 371 is an Armstrong number. ``` * 首先,给定数字(`number`)的值存储在另一个整数变量`originalNumber`中。 这是因为,我们需要在最后比较最终编号和原始编号的值。 * 然后,使用 while 循环循环遍历`originalNumber`,直到等于 0。 * 在每次迭代中,`number`的最后一位存储在`余数`中。 * 然后,使用`Math.pow()`功能将`余数`加 3(数字位数),并加到`结果`上。 * 然后,除以 10 后,从`originalNumber`中删除最后一位数字。 * 最后,比较`结果`和`number`。 如果相等,则为阿姆斯壮数。 如果不是,则不是。 * * * ## 示例 2:检查 Armstrong 号为 n 位数字 ```java 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 + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); } } ``` When you run the program, the output will be: ```java 1634 is an Armstrong number. ``` 在此程序中,我们没有使用 while 循环,而是使用了两个 for 循环。 第一个 for 循环用于计算数字中的位数。 它是以下形式的压缩形式: ```java for (;originalNumber != 0; originalNumber /= 10) { n++; } ``` 然后,第二个 for 循环计算`结果`,其中在每次迭代中,余数由数字`n`来供电。 访问此页面了解如何[显示两个时间间隔](/java-programming/examples/armstrong-number-interval "Display all armstrong numbers between two intervals")之间的所有阿姆斯壮数字。