С помощью своего алгоритма я нашел все нужные числа Армстронга и записал их в файл.
При старте программы я вычитываю их из файла и помещаю в массив.
Далее работаю уже с массивом.
Пробовал уже разный ввод данных. Задавал разные условия для проверки N, Вывод всегда получается ожидаемый и, как мне кажется, полностью соответствует условию. Но валидатор не умалим: утверждает, что не хватает элементов или есть лишние.
Вот массив чисел Армстронга, который я получил:
[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, 4679307774, 32164049650, 32164049651, 40028394225, 42678290603, 44708635679, 49388550606, 82693916578, 94204591914, 28116440335967, 4338281769391370, 4338281769391371, 21897142587612075, 35641594208964132, 35875699062250035, 1517841543307505039, 3289582984443187032, 4498128791164624869, 4929273885928088826]
package com.javarush.task.task20.task2025;
public class Degree {
private static long tempValue = 0;
public static long degree(long value, int degree) {
long result = value;
if (degree>1) {
if (tempValue>0) {
tempValue = tempValue * value;
result = degree(value, degree-1);
} else {
tempValue = value*value;
result = degree(value, degree-1);
}
} else {
if (degree == 1) {
if (tempValue>0) {
result = tempValue;
tempValue = 0;
}
return result;
}
}
return result;
}
}