М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Kastrulya1
Kastrulya1
16.09.2022 00:57 •  Информатика

Несправедливые башни
В Ханое несправедливо запретили класть самый маленький диск (номер 1) на средний колышек (номер 2).

Решите головоломку с учётом этих ограничений. Вам не нужно находить минимальное решение, но количество совершённых перемещений не должно быть больше 200000 при условии, что количество дисков не превосходит 10.

Входные данные

Задано натуральное число n≤10 — размер пирамидки.

Выходные данные

Программа должна вывести перекладывания пирамидки из данного числа дисков со стержня 1 на стержень 3.

Примеры
Ввод
3
Вывод
1 1 3
2 1 2
1 3 1
2 2 3
1 1 3
3 1 2
1 3 1
2 3 2
1 1 3
2 2 1
1 3 1
3 2 3
1 1 3
2 1 2
1 3 1
2 2 3
1 1 3
Ханойские башни
Головоломка “Ханойские башни” состоит из трёх стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из n дисков различного диаметра в порядке возрастания диаметра дисков, если рассматривать их сверху вниз. Диски можно перекладывать с одного стержня на другой по одному, при этом диск нельзя класть на диск меньшего диаметра. Необходимо переложить всю пирамидку со стержня 1 на стержень 3, используя стержень 2 как вс за минимальное число перекладываний.

Напишите функцию, которая решает головоломку: для данного числа дисков n печатает последовательность перекладываний в формате a b c, где a — номер перекладываемого диска, b — номер стержня, с которого снимается данный диск, c — номер стержня, на который надевается данный диск.

Например, строка 1 2 3 означает перемещение диска номер 1 со стержня 2 на стержень 3. В одной строке печатается одна команда. Диски пронумерованы числами от 1 до n в порядке возрастания диаметров.

Входные данные

Задано натуральное число n≤10 — размер пирамидки.

Выходные данные

Программа должна вывести минимальный (по количеству произведённых операций перекладывания пирамидки из данного числа дисков.

Примеры
Ввод
3
Вывод
1 1 3
2 1 2
1 3 2
3 1 3
1 2 1
2 2 3
1 1 3

👇
Ответ:
kovalenko171019
kovalenko171019
16.09.2022

В Ханое несправедливо запретили класть самый маленький диск (номер 1) на средний колышек (номер 2).

Решите головоломку с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.

Входные данные

Вводится натуральное число - количество дисков.

Выходные данные

Выведите ответ на задачу.

Примеры

входные данные

2

выходные данные

1 1 3

2 1 2

1 3 1

2 2 3

1 1 3

0

Объяснение:

4,5(83 оценок)
Открыть все ответы
Ответ:
TheSniper
TheSniper
16.09.2022

var

 n, max, count, contrl, max2: integer;

begin

 contrl := 0;

 max := 0;

 Writeln('Введите числа: ');

 Readln(n);

 while n <> 0 do

 begin

   Inc(count);

   if n>max then begin max2:=max; max:=n end

   else if n > max2 then max2 := n;

   Read(n);

 end;

 max2*=max;

 Writeln('Введите контрольное значение: ');

 Read(contrl);

 Writeln('Получено: ', count, ' чисел');

 Writeln('Получено контрольное значение: ', contrl);

 Writeln('Вычисленное контрольное значение:: ', max2);

 if contrl = max then Writeln('Контроль пройден')

 else Writeln('Контроль не пройден');

end.

4,6(88 оценок)
Ответ:
dogdogdogdogdogdog
dogdogdogdogdogdog
16.09.2022

var

 n, max, count, contrl: integer;

begin

 contrl := 0;

 max := 0;

 Writeln('Введите числа: ');

 Readln(n);

 while n <> 0 do  

 begin

   Inc(count);

   if (n mod 10 = 0) and (n > max) then max := n;

   Read(n);

 end;

 Writeln('Введите контрольное значение: ');

 Read(contrl);

 Writeln('Получено: ', count, ' чисел');

 Writeln('Получено контрольное значение: ', contrl);

 Writeln('Вичисленное контрольное значение:: ', max);

 if contrl = max then Writeln('Контроль пройден')  

 else Writeln('Контроль не пройден');

end.

4,7(100 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ