java怎么找出30位以内的自幂数
时间: 2024-09-14 13:16:20 浏览: 34
在Java中找出30位以内的自幂数,可以通过编写一个程序来实现。自幂数(也称为阿姆斯特朗数或Narcissistic number)是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个3位数,且1^3 + 5^3 + 3^3 = 153。
以下是一个简单的Java程序示例,用于找出30位以内的所有自幂数:
```java
public class SelfPowers {
public static void main(String[] args) {
// 最大位数设为30
int maxDigits = 30;
System.out.println("30位以内的自幂数有:");
// 从1位数开始,到30位数为止,检查每个数
for (int i = 1; i <= maxDigits; i++) {
findSelfPowers(i);
}
}
public static void findSelfPowers(int power) {
// 用于存储和的变量,初始为0
long sum = 0;
long number = 0;
// 计算自幂数
for (int j = 1; j < Math.pow(10, power); j++) {
number = j;
sum = 0;
// 对每一位数字进行幂运算,并累加到sum
while (number > 0) {
int digit = (int) (number % 10);
sum += Math.pow(digit, power);
number /= 10;
}
// 如果和等于原始数,则是自幂数
if (sum == j) {
System.out.println(j + "^" + power + " = " + sum);
}
}
}
}
```
这段代码定义了一个名为`SelfPowers`的类,其中包含主方法`main`用于运行程序,并调用`findSelfPowers`方法以找到所有满足条件的自幂数。`findSelfPowers`方法会对每个可能的数字进行检查,计算每位数字的n次幂之和,并判断是否等于原数字,如果相等,则打印出来。
阅读全文