1. 程式人生 > >實現指定位數內的阿姆斯壯數的查詢

實現指定位數內的阿姆斯壯數的查詢

     * 試寫出一程式找出所有的三位數Armstrong數。
     *
     * @param args
     */
    public static void main(String[] args) {
         System.out.println(Armstrong(8).toString());
    }
    public static ArrayList<Integer> Armstrong(int number) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        for (int i = 1; i < Math.pow(10, number); i++) {
            if (Sum(i) == i) {
                arrayList.add(i);
            }
        }
        return arrayList;
    }
    public static int Sum(int number2) {
        int count = 0;
        //注意此處的不能把條件寫為number2 % 10 ,因為會出現中間數字為零的情況
        while (number2 / 10 != 0) {
            count += (int) Math.pow(number2 % 10, 3);
            number2 = number2 / 10;
        }
        //加上最後一次的結果
        return count +(int) Math.pow(number2 /Math.pow(10, String.valueOf(number2).length() - 1),3);
    }