Помогите! Паскаль. Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.
NameOff:
А что надо вывести? И сколько чисел подается на вводе?
Дано два натуральных числа A и B (A>B).
Выходные данные
Напишите алгоритм для Развоителя, который преобразует число A в число B и при этом содержит минимальное число команд. Команды алгоритма нужно выводить по одной в строке, первая команда обозначается, как -1, вторая команда как :2.
Ответы
Ответ дал:
9
var a, b : integer;
begin
readln(a, b);
while a <> b do
begin
if (a >= b * 2) and (a mod 2 = 0) then
begin
a := round(a / 2);
writeln(':2');
end
else
begin
a := a - 1;
writeln(-1);
end
end;
end.
begin
readln(a, b);
while a <> b do
begin
if (a >= b * 2) and (a mod 2 = 0) then
begin
a := round(a / 2);
writeln(':2');
end
else
begin
a := a - 1;
writeln(-1);
end
end;
end.
Вас заинтересует
2 года назад
2 года назад
7 лет назад
9 лет назад