Вопрос задан 20.10.2026 в 11:56. Предмет Информатика. Спрашивает Адик Дмитрий.

Дано натуральное число меньше 16. Посчитайте количество его единичных битов. Например, если дано число 9, запись которого в двоичной системе счисления равна 1001, то количество его единичных битов равно 2. Решите в КУМИР.

Перейти к ответам

Ответы на вопрос

Отвечает Киров Дмитрий.

Для решения задачи в КуМир можно использовать цикл нц пока, а также функции mod (остаток от деления) и div (целочисленное деление).

Программа на языке КуМир

Обычный текст
алг Количество_единиц нач цел n, k ввод n k := 0 нц пока n > 0 если mod(n, 2) = 1 то k := k + 1 все n := div(n, 2) кц вывод k кон

Объяснение решения

  1. цел n, k — объявляем две целочисленные переменные: n — введённое число, k — количество единичных битов.

  2. ввод n — вводим натуральное число меньше 16.

  3. k := 0 — первоначально количество единиц равно нулю.

  4. нц пока n > 0 — выполняем цикл, пока число больше нуля.

  5. mod(n, 2) = 1 — проверяем остаток от деления числа на 2. Если остаток равен 1, значит, последний двоичный бит равен единице.

  6. k := k + 1 — увеличиваем счётчик единиц на 1.

  7. n := div(n, 2) — делим число на 2 нацело, чтобы перейти к следующему биту.

  8. вывод k — выводим количество единичных битов.

Пример работы программы

Пусть пользователь ввёл число 9.

В двоичной системе число 9 записывается как 1001.

Шаг

Число n

mod(n, 2)

Счётчик k

1

9

1

1

2

4

0

1

3

2

0

1

4

1

1

2

После последнего деления n становится равным 0, и цикл заканчивается.

Результат:

Обычный текст
Ввод: 9 Вывод: 2

Таким образом, программа правильно подсчитывает количество единичных битов в двоичной записи любого натурального числа меньше 16.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос