找出1000000內的水仙花數


//打印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

相關文章
相關標籤/搜索