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

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

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years