Задание: записать число N в массив наоборот. Например:
N = 348597
А массив должен иметь вид:
[7,9,5,8,4,3]
Реализация вывода числа наоборот понятна, но как разбить число int
, не знаю.
Можно использовать метод IntStream.iterate(seed,hasNext,next)
:
int n = 348597;
int[] arr = IntStream
// начинаем с 'n', каждое последующее число -
// это текущее число, делённое на 10
// получаем [348597, 34859, 3485, 348, 34, 3]
.iterate(n, i -> i / 10 > 0 || i % 10 > 0, i -> i / 10)
// получаем последнюю цифру
.map(i -> i % 10)
// собираем в массив
.toArray();
// выводим массив
System.out.println(Arrays.toString(arr)); // [7, 9, 5, 8, 4, 3]
public static void main(String[] args) {
int[] arr = new int[6];
int number = 348597;
for (int i = 0; i < 6; ++i) {
arr[i] += number % 10;
number /= 10;
}
for (int i : arr) {
System.out.print(i);
}
System.out.println();
System.out.println(arr[0]);
System.out.println(arr[5]);
}
Это легко решается рекурсией:
public static int[] getRevertedDigits(int n) {
if (n < 0) {
throw new IllegalArgumentException("negative numbers not supported");
}
return getRevertedDigits(n, 1);
}
private static int[] getRevertedDigits(int n, int size) {
int[] res;
int d = n / 10;
if (d > 0) {
res = getRevertedDigits(d, size + 1);
} else {
res = new int[size];
}
res[size - 1] = n % 10;
return res;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Создаю модульную программу в ide Intellij, но при компиляции не видит пакеты из других модулей
Есть блоки как на картинкеМожно ли на флексбоксах сверстать такие блоки, не оборачивая
Я спозиционировал тёмное меню, которое задано с помощью position: absolute; z-index: 1, оно находится выше всех, но я хочу, чтобы кнопка, которая была в header...