Задача на C++ Ханойские башни Головоломка “Ханойские башни” состоит из трёх стержней, пронумерованных числами 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
155
371
Ответы на вопрос:
program Primer; // Название программы
var // Раздел для описания переменных
a, b, max: integer; // Объявление целочисленных переменных:
a - хранение первого введенного с клавиатуры числа;b - хранение второго введенного с клавиатуры числа;max - хранение максимального из них.begin // Начало программы
writeln('Введите два целых числа:'); // Вывод сообщения в консоль формата:
Введите два целых числа:read(a, b); // Считываем с клавиатуры два числа
if a > b then // Если значение переменной a > b, тогда
begin // Начало цикла if
max := a; // В переменную max присваиваем значение переменной a
end // Конец цикла if
else // Иначе
begin // Начало цикла else
max := b; // В переменную max присваиваем значение переменной b
end; // Конец цикла else
writeln('Наибольшее число: ', max); // Вывод сообщения в консоль формата:
Наибольшее число: *значение переменной max*end. // Конец программы
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
supertriom28.02.2023 15:22
-
жандосЕУ04.03.2022 19:03
-
zulyaomarova8905.04.2020 16:31
-
Солнышко00302.01.2022 22:55
-
Infinity16723.07.2022 20:53
-
лолпрапти10.08.2022 10:51
-
kristinakarpova208.01.2020 11:31
-
Neal1216.06.2022 07:16
-
debnatkh22.12.2020 12:06
-
Noiceee26.07.2020 05:38
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.