Краткое пояснение: Программа считает сумму остатков от деления введенного числа на 2 до тех пор, пока число не станет равным 0.
Пошаговое решение:
- Шаг 1: Вводим число 2012.
- Шаг 2: Инициализируем переменную s = 0.
- Шаг 3: Запускаем цикл while, который выполняется, пока n != 0.
- Шаг 4: Внутри цикла выполняем следующие действия:
- s = s + n % 2: Находим остаток от деления n на 2 и добавляем его к s.
- n = n // 2: Делим n на 2 нацело.
Таблица итераций цикла:
| Итерация |
n |
n % 2 |
s |
| 1 |
2012 |
0 |
0 |
| 2 |
1006 |
0 |
0 |
| 3 |
503 |
1 |
1 |
| 4 |
251 |
1 |
2 |
| 5 |
125 |
1 |
3 |
| 6 |
62 |
0 |
3 |
| 7 |
31 |
1 |
4 |
| 8 |
15 |
1 |
5 |
| 9 |
7 |
1 |
6 |
| 10 |
3 |
1 |
7 |
| 11 |
1 |
1 |
8 |
| 12 |
0 |
|
|
Ответ: 8