Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 5, а потом 8....

0 голосов
95 просмотров

Укажите наибольшее число 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.


Информатика (1.6k баллов) | 95 просмотров
Дан 1 ответ
0 голосов

Главное понять что же делает эта программа. А она во-первых находит сколько единиц будет в двоичной записи числа x, для этого используется переменная L. И во-вторых находит количество цифр в двоичной записи числа x, для этого используется переменная M. Теперь мы можем переформулировать условие задачи так: найти максимальное число записываемое в двоичной системе 8-ю цифрами и содержащее в этой записи ровно 5 единиц. Очевидно максимальным из всех таких чисел будет такое, у которого в старших разрядах будут единицы, а в младших разрядах нули, т.е. число 11111000, в десятичной системе это число записывается как 248.
Ответ: 248.

(26 баллов)