• Написать программу на паскале
    Задано целое число N. В ячейку памяти вычислительной машины записывается его двоичное представление (размер ячейки – 1 байт). Над содержимым ячейки выполняется преобразование: циклический сдвиг влево на одну позицию. Все цифры двоичного числа сдвигаются влево на одну позицию, при этом старший бит переходит в младший. Преобразование повторяется восемь раз (после последнего преобразования число становится исходным).
    Напишите программу, которая по введенному натуральному десятичному числу N, вычисляет наибольшее из десятичных чисел, полученных в процессе преобразования.
    Например: 201 представлено в ячейке памяти как 11001001. После первого сдвига влево получаем число 10010011, это соответствует десятичному числу 147.
    Формат входных данных
    Первая строка ввода содержит неотрицательное целое число N.
    Формат выходных данных
    Выведите единственное целое число R — наибольшее число, полученное в процессе преобразований.
    Ограничения
    0 ≤ N ≤ 255
    Пример входных и выходных данных
    Входные данные
    Выходные данные

    1
    128

    143
    248

Ответы 1

  • PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018Внимание! Если программа не работает, обновите версию!

    function Dec2Bin(t: integer): string;

    begin

     var r: string := '';

     while t >= 2 do

       (r, t) := (t mod 2 + r, t shr 1);

     r := t + r;

     Result := '0' * (8 - r.Length) + r

    end;

    function Bin2Dec(s: string): integer;

    begin

     Result := 0;

     var p := 1;

     for var i := s.Length downto 1 do

     begin

       Result += (s[i].ToDigit) * p;

       p *= 2

     end

    end;

    function GenSeqCycle(n: integer): sequence of integer;

    begin

     var s := Dec2Bin(n);

     loop 8 do

     begin

       yield Bin2Dec(s);

       s := s[2:] + s[1]

     end

    end;

    begin

     GenSeqCycle(ReadInteger).Max.Println

    end.

    answer img
    • Автор:

      gracejasx
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

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

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

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