Привет! Давай разберёмся с задачей пошагово. Нам нужно найти значение переменной q после выполнения алгоритма для n=19 и массива X, заданного в условии: {1; 1; 5; 6; 5; 7; 1; 5; 4; 9; 3; 5; 5; 5; 6; 4; 10; 5; 8}.
Возьмем алгоритм и выполним его шаг за шагом.
- Задать
n=19. - Для значения
iот 1 доnзадаёмX[i]согласно данному массиву. - Далее инициализируем массив
M. Каждый элементM[i]=0для всехiот 1 до 10. - Устанавливаем
q=0. - Проходимся по каждому элементу массива
X[i]:- Увеличиваем
M[X[i]]на 1 для каждогоi.
- Увеличиваем
Эти шаги можно записать в виде таблицы:
| i | X[i] | M[X[i]] до | M[X[i]] после |
|---|---|---|---|
| 1 | 1 | 0 | 1 |
| 2 | 1 | 1 | 2 |
| 3 | 5 | 0 | 1 |
| 4 | 6 | 0 | 1 |
| 5 | 5 | 1 | 2 |
| 6 | 7 | 0 | 1 |
| 7 | 1 | 2 | 3 |
| 8 | 5 | 2 | 3 |
| 9 | 4 | 0 | 1 |
| 10 | 9 | 0 | 1 |
| 11 | 3 | 0 | 1 |
| 12 | 5 | 3 | 4 |
| 13 | 5 | 4 | 5 |
| 14 | 5 | 5 | 6 |
| 15 | 6 | 1 | 2 |
| 16 | 4 | 1 | 2 |
| 17 | 10 | 0 | 1 |
| 18 | 5 | 6 | 7 |
| 19 | 8 | 0 | 1 |
Теперь массив M выглядит так:
M = {0, 3, 0, 1, 2, 7, 2, 1, 1, 1}.
После этого нам нужно в цикле от 1 до 10 проверить значение каждого M[i]:
- Если
M[i] = 1, то увеличиваемqна 1.
Подведем итог для M:
| i | M[i] | q (до) | q (после) |
|---|---|---|---|
| 1 | 0 | 0 | 0 |
| 2 | 3 | 0 | 0 |
| 3 | 0 | 0 | 0 |
| 4 | 1 | 0 | 1 |
| 5 | 2 | 1 | 1 |
| 6 | 7 | 1 | 1 |
| 7 | 2 | 1 | 1 |
| 8 | 1 | 1 | 2 |
| 9 | 1 | 2 | 3 |
| 10 | 1 | 3 | 4 |
Несмотря на изменения массива X, конечное значение q получается равным 4 (так как встретилось 4 числа, которые имели значение 1 в массиве M).
Так что значение переменной q в конце выполнения алгоритма будет равно 4.
Надеюсь, помог тебе всё разобрать! Если что-то осталось непонятным, пиши!
