實現指定位數內的阿姆斯壯數的查詢
阿新 • • 發佈:2019-01-24
* 試寫出一程式找出所有的三位數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);
}
*
* @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);
}