java代码求1000以内的所有的阿姆斯特朗数。 (如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。例如:153=1^3+5^3+3^3 7=7^1 407=4^3+0^3+7^3)
时间: 2023-12-23 08:04:32 浏览: 70
好的,下面是Java代码,可以求出1000以内的所有阿姆斯特朗数:
```java
public class ArmstrongNumbers {
public static void main(String[] args) {
for (int i=1; i<=1000; i++) {
if (isArmstrong(i)) {
System.out.println(i);
}
}
}
public static boolean isArmstrong(int num) {
int sum = 0;
int originalNum = num;
int numDigits = String.valueOf(num).length();
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, numDigits);
num /= 10;
}
return sum == originalNum;
}
}
```
代码中,我们先遍历1到1000之间的所有正整数,然后对于每个数字,调用isArmstrong()方法判断它是否为阿姆斯特朗数。isArmstrong()方法中,我们首先记录下原始的数字,然后计算该数字的位数。接着,我们通过循环每次获取该数字的最后一位,计算它的n次方,并将结果加到sum变量中。最后,我们判断sum是否等于原始的数字,如果是,则该数字是阿姆斯特朗数,返回true,否则返回false。
阅读全文