ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 程序:检查阿姆斯特朗数 > 原文: [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`的最后一位存储在`remainder`中。 * 然后,使用`Math.pow()`函数将`remainder`加 3(数字位数),并加到`result`上。 * 然后,除以 10 后,从`originalNumber`中删除最后一位数字。 * 最后,比较`result`和`number`。 如果相等,则为阿姆斯特朗数。 如果不是,则不是。 * * * ## 示例 2:检查 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."); } } ``` 运行该程序时,输出为: ```java 1634 is an Armstrong number. ``` 在此程序中,我们没有使用`while`循环,而是使用了两个`for`循环。 第一个`for`循环用于计算数字中的位数。 它是以下形式的压缩形式: ```java for (;originalNumber != 0; originalNumber /= 10) { n++; } ``` 然后,第二个`for`循环计算`result`,其中在每次迭代中,余数由数字`n`来供电。 访问此页面了解如何[显示两个时间间隔](/java-programming/examples/armstrong-number-interval "Display all armstrong numbers between two intervals")之间的所有阿姆斯特朗数。