Для сравнения полученного и ожидаемого результатов использовал информацию с этой страницы https://acmp.ru/article.asp?id_text=198
В частности:
"В промежутке 1<=N<=9 программа находит следующие 32 числа Армстронга:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153."
До 9-ти знаков включительно - удар-в-удар. Но остальные 10 знаков вручную не переберёшь.
Как определить что здесь не так?
package com.javarush.task.task20.task2025;
import java.util.ArrayList;
import java.util.Collections;
public class test {
private static ArrayList<Integer> checkedNumbersList = new ArrayList<>();
public static void main(String[] args) {
long lon = 2324522937L;
int i = (int) lon % 10;
System.out.println(i);
}
public static ArrayList<Integer> getListFromTest(int number) {
int digitLength = number;
for (int i = 1; i <= digitLength; i++) {
int[] checkingNumber = new int[i];
recursion(i, checkingNumber, 1, checkingNumber.length);
}
// System.out.println(checkedNumbersList.size());
return checkedNumbersList;
}
private static void recursion(int iteration, int[] checkingNumber, int start, int arrayLength) {
if(iteration == 1) {
for (int i = start; i <= 9; i++) {
checkingNumber[arrayLength - iteration] = i;
// Integer integer = Solution.getIntegerFromArray(checkingNumber);
// checkedNumbersList.add(integer);
}
} else {
for (int i = start; i <= 9; i++) {
checkingNumber[arrayLength - iteration] = i;
recursion(iteration - 1, checkingNumber, i, checkingNumber.length);
}
}
}
}