Добрый день, коллеги!
Тело из метода перенес в main временно. Вместо N временно использую 122.
Разбиваю каждое число < N (122) на разряды, потом собираюсь сравнавить каждое число согласно условия и добавлять его в результирующий (long[] result) маccив.
Вообще в ту сторону иду? Если в целом да, то в строке 36 во время debuga возникает ошибка arrayindexoutofbounds exception и в temp[k] = stringBuilder.charAt(k) не передается первый разряд числа!?
package com.javarush.task.task20.task2025;
import java.util.*;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
LinkedList<Long> resultList = new LinkedList<>();
long[] result = new long[resultList.size()];
return result;
}
public static void main(String[] args) {
// getNumbers(122);
LinkedList<long[]> listLong = new LinkedList<>();
long[] temp;
long[] numberArr = new long[122];
System.out.println("String.valueOf.length = " + String.valueOf(122).length());
for (int i = 0; i < 122; i++) {
numberArr[i] = i;
System.out.println("number = " + numberArr[i]);
StringBuilder stringBuilder = new StringBuilder();
while (numberArr[i] > 0) {
stringBuilder.insert(0, numberArr[i] % 10);
numberArr[i] /= 10;
}
System.out.println("number of digits = " + stringBuilder.length());
System.out.println("number by place: ");
temp = new long[stringBuilder.length()];
for (int k = 0; k < stringBuilder.length(); k++) {
System.out.print(stringBuilder.charAt(k) + " ");
temp[k] = stringBuilder.charAt(k);
}
listLong.add(temp);
System.out.println();
}
System.out.println("number by place of array: ");
for (long[] arr : listLong) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
// public static void main(String[] args) {
// long a = System.currentTimeMillis();
// System.out.println(Arrays.toString(getNumbers(1000)));
// 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(1000000)));
// b = System.currentTimeMillis();
// System.out.println("memory " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (8 * 1024));
// System.out.println("time = " + (b - a) / 1000);
// }
}
}