Для каждого варианта входных данных S, алгоритм вычисляет сумму S1 = 1/1 + 1/2 + ... + 1/N до тех пор, пока S1 не станет больше или равной S. В результате выводится значение N.
Рассмотрим решение для первого варианта, где S = 1.5.
1. Инициализация: S1 = 0, N = 0.
2. Первая итерация:
* N = N + 1 = 1
* S1 = S1 + 1/N = 0 + 1/1 = 1
* Проверка: S1 (1) < S (1.5) - условие выполняется.
3. Вторая итерация:
* N = N + 1 = 2
* S1 = S1 + 1/N = 1 + 1/2 = 1.5
* Проверка: S1 (1.5) < S (1.5) - условие *не* выполняется (S1 == S).
Алгоритм завершается и возвращает значение N.
Ниже приведены результаты для каждого из предоставленных вариантов.
| № |
S |
N (результат) |
Описание |
| 1 |
1.5 |
2 |
1 + 1/2 = 1.5 |
| 2 |
1.8 |
3 |
1 + 1/2 + 1/3 = 1.833... |
| 3 |
2.4 |
4 |
1 + 1/2 + 1/3 + 1/4 = 2.083... + 1/4 = 2.33.. < 2.4, next iteration: 1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.33 + 0.2 = 2.533 |
| 4 |
1.6 |
3 |
1 + 1/2 + 1/3 = 1.833... |
| 5 |
1.7 |
3 |
1 + 1/2 + 1/3 = 1.833... |
| 6 |
1.3 |
2 |
1 + 1/2 = 1.5 |
| 7 |
2.6 |
5 |
1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.283... + 0.2 = 2.533 < 2.6, next iteration: 2.283 + 1/5 + 1/6 = 2.533 + 0.166 = 2.7 |
| 8 |
2.37 |
4 |
1 + 1/2 + 1/3 + 1/4 = 2.083... + 1/4 = 2.33.. < 2.37, next iteration: 1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.33 + 0.2 = 2.533 |
| 9 |
1.92 |
4 |
1 + 1/2 + 1/3 + 1/4 = 2.083... |
| 10 |
1.12 |
2 |
1 + 1/2 = 1.5 |
| 11 |
1.45 |
2 |
1 + 1/2 = 1.5 |
| 12 |
2.66 |
5 |
1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.283... + 0.2 = 2.533 < 2.66, next iteration: 2.283 + 1/5 + 1/6 = 2.533 + 0.166 = 2.7 |
| 13 |
2.71 |
5 |
1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.283... + 0.2 = 2.533 < 2.71, next iteration: 2.283 + 1/5 + 1/6 = 2.533 + 0.166 = 2.7 |
| 14 |
2.13 |
4 |
1 + 1/2 + 1/3 + 1/4 = 2.083... + 1/4 = 2.33.. |
| 15 |
1.45 |
2 |
1 + 1/2 = 1.5 |