输出三十位以内的阿姆斯特朗数java
时间: 2024-09-14 08:15:34 浏览: 44
阿姆斯特朗数是指一个n位正整数,其各位数字的n次方之和等于原数本身。例如,153是一个三位阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的Java程序,用于找出30位以内的所有阿姆斯特朗数:
```java
public class ArmstrongNumbers {
public static void main(String[] args) {
int limit = 1000; // 因为30位数最大是99999...999,我们设定查找范围到99999
for (int num = 1; num < limit; num++) {
if (isArmstrong(num)) {
System.out.println(num);
}
}
}
// 判断是否为阿姆斯特朗数的辅助函数
private static boolean isArmstrong(int number) {
int sum = 0;
String strNumber = Integer.toString(number); // 转换为字符串便于计算每一位的幂
int len = strNumber.length();
for (char digit : strNumber.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sum += Math.pow(digitValue, len); // 对每一位求n次方
}
return sum == number;
}
}
```
这个程序会打印出30位以内的所有阿姆斯特朗数,如1, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371等。
阅读全文