自幂数定义
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
public static List<Integer> getNarcissisticNumbers(int n) {
List<Integer> number =new LinkedList<>();
int max = 10;
int min = 10;
int sum = 0;
int a = 0;
if (n <= 0){
System.out.println("请输入正数");
}else if (n == 1){
for (int i = 0;i < 10; i++){
number.add(i);
}
} else {
for (int i =1;i< n;i++){
max = max * 10;
}
for(int i = 1;i < n - 1;i++){
min = min * 10;
}
for(int i = min;i < max;i++){
sum = 0;
for(int j = 0;j <= n;j++){
a = 0 ;
if (j == n){
a = i % 10;
}else {
a = i / (int)Math.pow(10,n - j) % 10;
}
sum = sum + (int)Math.pow(a,n);
}
if(sum == i){
number.add(i);
}
}
}
return number;
}