Дано натуральное число меньше 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
кон
Объяснение решения
цел n, k— объявляем две целочисленные переменные:n— введённое число,k— количество единичных битов.ввод n— вводим натуральное число меньше 16.k := 0— первоначально количество единиц равно нулю.нц пока n > 0— выполняем цикл, пока число больше нуля.mod(n, 2) = 1— проверяем остаток от деления числа на 2. Если остаток равен 1, значит, последний двоичный бит равен единице.k := k + 1— увеличиваем счётчик единиц на 1.n := div(n, 2)— делим число на 2 нацело, чтобы перейти к следующему биту.вывод 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.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

