Написать программку на паскалеЗадано целое число N. В ячейку памяти вычислительной
Написать программку на паскале
Задано целое число N. В ячейку памяти вычислительной машины записывается его двоичное представление (размер ячейки 1 байт). Над содержимым ячейки производится преобразование: циклический сдвиг на лево на одну позицию. Все числа двоичного числа сдвигаются на лево на одну позицию, при этом старший бит переходит в младший. Преображение повторяется восемь раз (после заключительного преображенья число становится начальным).
Напишите программу, которая по введенному естественному десятичному числу N, вычисляет наибольшее из десятичных чисел, приобретенных в процессе преобразования.
Например: 201 представлено в ячейке памяти как 11001001. После первого сдвига на лево получаем число 10010011, это подходит десятичному числу 147.
Формат входных данных
1-ая строчка ввода содержит неотрицательное целое число N.
Формат выходных данных
Выведите единственное целое число R наибольшее число, приобретенное в процессе преображений.
Ограничения
0 N 255
Пример входных и выходных данных
Входные данные
Выходные данные
1
128
143
248
PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018
Внимание! Если программка не работает, обновите версию!
function Dec2Bin(t: integer): string;
begin
var r: string := '';
while t gt;= 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.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.