Задать вопрос
29 октября, 07:33

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

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

    Ответ: 248.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 5, а потом 8. var x, L, M: integer; begin readln (x) ; L : = 0; M ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы