(ショートバージョン)キーボード入力範囲、範囲内のすべてのパワーを解決します


パッケージcom.xiaozhao.coding;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;

パブリッククラスGetNarcissisticNumbers {

    @SuppressWarnings( "resource")
    public static void main(String [] args){         List <Integer> list1 = new ArrayList <Integer>();         Scanner Scanner = new Scanner(System.in);         System.out.println( "パワーからクエリする必要がある範囲を入力してください(たとえば、100 --- n、デフォルトの開始位置は100): ");         int n = scanner.nextInt();         for(int i = 100; i <= n ; i ++){             getNarcissisticNumbers(i);             if(getNarcissisticNumbers(i)== i)             list1.add(getNarcissisticNumbers(i));         }          System.out.println( "この範囲では、クエリするべき数は次のとおりです。" + "\ n" + list1);     }     public static int GetCount(int n){         //何桁のnであるかを決定する         int s = n / 10;
        


    


        
        

            

            








        int count = 1;
        while(s> 0){             s = s / 10;             count ++;         }         return count;     }     public static int sum(int n、int k){         //各数値のカウント順を見つける         int sum = 1;         final int h = n;         for(int i = 0; i <h; i ++){             sum = sum * k;         }         return sum;     }     public static int jiechen(int k){         //各数値に必要なもの除算の階乗(10)         int num = 1;         while(k> 0){             num = 10 * num;             k--;         }         return num;     }














    







        


    public static int Getvalue(int n){         //         int value = 0;         int q = 1;         int a = GetCount(n)-1;         //System.out.println(a);         while( a> 0){             q = 10 * q;             a--;         }         value = n / q;         //System.out.println(value);         return value;     }     public static int getNarcissisticNumbers(int n){         //パスに戻るパワー変更後の数         List <Integer> list = new ArrayList <Integer>();         int k = GetCount(n);         //System.out.println(k);         for(int i = 1; i <2; i ++){











        
    




        

        
      

        
        

        

            list.add(sum(k、Getvalue(n)));
            for(int j = k-1; j> 0; j--){                 n = n%jiechen(j);                 GetCount(n);                 list.add(sum(k、Getvalue(n)));                 }         }         ListIterator <Integer> it = list.listIterator();         int sum2 = 0;         while(it.hasNext()){             int sum1 = it.next();             sum2 = sum2 + sum1;          }         //System.out.println(sum2);         sum2を返します。         } }












        



 

おすすめ

転載: blog.csdn.net/weixin_43562937/article/details/103828039