//打印100000內的水仙花數
/*【提示:水仙花數是指一個 n 位數 ( n≥3 ),
它的每一個位上的數字的 n 次冪之和等於它自己。
(例如:1^3 + 5^3 + 3^3 = 153)】*/ git
class Narcis { 測試
public static void main(String[] args){
getNarcis(1000000000);
//測試語句
// System.out.println("5::"+ expon(5,3));
// System.out.println("153:"+ sum(153));
// System.out.println("153:"+ getDigit(153));
}
//1.遍歷100——n
public static void getNarcis(int n){
for(int i=100; i<=n; i++){
//2.判斷i是否水仙花數
boolean flag = isNarcis(i);
if(flag){
System.out.println(i);
}
}
}
public static boolean isNarcis(int num){
return num==sum(num);
}
//3。分離數字求冪求和
public static int sum(int num){
int sum = 0;
//4.獲取位數==>分離數字求冪求和
int digit = getDigit(num);
while(num%10!=0){
sum += expon(num%10,digit);
num /= 10;
}
return sum;
}
public static int getDigit(int num){
int count = 0;
while(num%10!=0){
count++;
num /= 10;
}
return count;
}
//base: 基數, digit:冪 (base的digit次方)
public static int expon(int base, int digit){
int temp = 1;
for(int i=0; i<digit; i++){
temp *= base;
}
return temp;
} ci
} get