37. Статистика
Теория
Задача
Все числа двузначные положительные. Вывести на экран наименьшую цифру, которая встречаются среди этих натуральных чисел.
Если таких нет, вывести НЕТ
.
Такие задачи решаются через введение дополнительного массива статистики. Элемент массива статистики
с индексом i
хранит информацию о том, сколько раз мы встретили i
-е значение.
В случае цифр i
может принимать значения от до включительно, значит,
нам понадобится массив статистики размера
public class Main {
public static void main(String[] args) {
int[] arr = new int[]{20, 12, 52, 14, 42, 12, 51, 12, 42, 35, 24};
// массив статистики, в i-м элемете хранится количество
// цифр i в перебранных элементах массива
// т.к. цифр всего 10, то и элементов массива статистики нужно
// хранить 10
int[] s = new int[10];
// перебираем элементы массива
for (int i = 0; i < arr.length; i++) {
// получаем старшую цифру элемента
int a1 = arr[i] / 10;
// увеличиваем значение элемента массива статистики
// с индексом a1
s[a1]++;
// получаем младшую цифру элемента
int a2 = arr[i] % 10;
// увеличиваем значение элемента массива статистики
// с индексом a2
s[a2]++;
}
// индекс младшей цифры, встречающейся в числе
int d = -1;
// ищем наименьшую цифру, которая встречается
// среди введённых чисел
for (int i = 0; i < 10; i++)
// если цифра i встретилась в одном
// из чисел
if (s[i] != 0) {
// сохраняем цифру
d = i;
// останавливаем выполнение цикла
break;
}
// выводим индекс
System.out.println(d);
}
}
На консоль будет выведено:
4
Задание
Массив arr
уже объявлен, вам нужно написать только команды,
обрабатывающие его значения, т.е. только часть тела метода main()
.
- Все числа двузначные положительные. Вывести на экран наименьшую цифру, которая встречается среди этих натуральных чисел.
- Все числа двузначные положительные. Вывести на экран наибольшую цифру, которая НЕ встречается
среди этих натуральных чисел. Если все цифры встречаются, то вывести
НЕТ
. - Вывести на экран значение остатка от деления на , которое встречается чаще всего. Если несколько остатков встречаются одинаковое количество раз, вывести больший.
- Все числа двузначные положительные. Вывести на экран, верно ли, что каждый элемент массива встречается
не менее -х раз (
ДА
/НЕТ
). - Программа должна вывести на экран такие две цифры, на которые чаще всего оканчиваются числа последовательности. Если есть несколько вариантов, программа должна вывести всех их через пробел в порядке возрастания.
- Все числа двузначные. Вывести на экран значение самого часто повторяющегося элемента массива. Если в массиве несколько таких элементов, вывести из них тот, который имеет самый меньший номер.
- Все числа не превышают . Вывести на экран, какое количество разрядов встречается среди этих чисел чаще. Если таких несколько, то вывести большее.