Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 5, а потом 8. var x, l, m: integer; begin readln(x); l : = 0; m : = 0; while x > 0 do begin m : = m + 1; if x mod 2 < > 0 then l : = l + 1; x : = x div 2; end; writeln(l); writeln(m); end.

merobox13 merobox13    1   27.08.2019 23:40    0

Ответы
sleepyfriend18 sleepyfriend18  09.09.2020 09:54
Главное понять что же делает эта программа. А она во-первых находит сколько единиц будет в двоичной записи числа x, для этого используется переменная L. И во-вторых находит количество цифр в двоичной записи числа x, для этого используется переменная M. Теперь мы можем переформулировать условие задачи так: найти максимальное число записываемое в двоичной системе 8-ю цифрами и содержащее в этой записи ровно 5 единиц. Очевидно максимальным из всех таких чисел будет такое, у которого в старших разрядах будут единицы, а в младших разрядах нули, т.е. число 11111000, в десятичной системе это число записывается как 248.
ответ: 248.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика