Насколько я понял условие задачи, то должен возвращаться массив с искомым числом, вроде как все расчеты совпадают с условием, однако валидатор не пропускает, скорее всего я неправильно понял условие задачи.
Если не трудно укажите на ошибки в понимании условия или ходе решения
package com.javarush.task.task20.task2025;
import java.beans.PropertyEditorSupport;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
int sum = 0;
int input = Math.toIntExact(N);
int size = String.valueOf(input).length();
int base = 10; //could be anything
ArrayList<Integer> res = new ArrayList<>();
while(input != 0) {
res.add(input % (base));
input = input / base;
}
for (Integer list : res){
sum += list * size;
}
long[] result = new long[1];
result[0] = sum;
return result;
}
public static void main(String[] args) {
long a = System.currentTimeMillis();
System.out.println(Arrays.toString(getNumbers(1234)));
long b = System.currentTimeMillis();
System.out.println("memory " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (8 * 1024));
System.out.println("time = " + (b - a) / 1000);
a = System.currentTimeMillis();
System.out.println(Arrays.toString(getNumbers(12345678)));
b = System.currentTimeMillis();
System.out.println("memory " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (8 * 1024));
System.out.println("time = " + (b - a) / 1000);
}
}
пропиши long.MAX_VALUE и посмотри сколько будет твоя программа работать)) подсказка, лучше через пол минуты выключи, потому что она закончит работать через несколько тысяч лет)