Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.08.2009
Сообщений: 3

Пояснение к Ханойским башням

17.08.2009, 16:08. Показов 3519. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. В программировании новичок, иду пока по книге Дейтелов, там в одной из первых глав наткнулся на задачу о Ханойских башнях. День бился головой об стол, потом посмотрел решение и все равно не смог до конца разобраться в данном коде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <conio.h>
 
char a,b,c;
int num;
 
void hanoy(int num,char a,char b,char c){
 
  if(num>0){
 
    hanoy(num-1,a,c,b);
 
    printf("%c--->%c\n",a,c);
 
    hanoy(num-1,b,a,c);
 
  }
}
void main(){
  clrscr();
  printf("number of rings=");
  scanf("%d",&num);
  a='A';b='B';c='C';
  hanoy(num,a,b,c);
  getch();
}
В частности:
C++
1
2
3
   hanoy(num-1,a,c,b);
 
    hanoy(num-1,b,a,c);
По какому принципу заменяются переменные, как считаются диски, и где return для возвращения промежуточного результата, чтобы посчитать окончательный (хотя тут и void и расчета нет для возврата)? В задаче сказано, что решение элементарное, послушное и строится на рекурсии (перемещение n - 1 диска)... Помогите разобраться: как расшифровать две вышепреведенные строки.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.08.2009, 16:08
Ответы с готовыми решениями:

Небольшое пояснение
Здравствуйте,хотел бы поинтересоваться.Вот я,планирую начать изучать с++,хотелось бы иметь примерное представление о том что такое...

Пояснение к коду
Добрый день! Вопрос в следующем, есть конструктор объявленный в хелпе: virtual __fastcall TGIS_LayerSHP(); Я не понимаю...

Пояснение к функциям
Есть 2 функции. Не могли бы вы прокомментировать их. Или подробно описать что они делают. Заранее спасибо.bool MEqualsSth(void* first,...

20
0 / 0 / 0
Регистрация: 29.03.2014
Сообщений: 20
30.11.2014, 19:44
Студворк — интернет-сервис помощи студентам
с алгоритмом всё ясно. Не ясно, почему в 1й строчке консоли печатает "1 -> 2", а во второй "1 -> 3", потом "2 -> 3" несмотря на
C++
1
2
3
6 han (n-1, A, C); // где А==1, С==3
7 han (1, A, B );   // где А==1, В==2
8 han (n-1, C, B); // С==3, В==2
и ожидается, вроде бы,
сначала
"1 -> 3",
потом "1 -> 2"
и "3->2" а на самом деле выводится
Цитата Сообщение от dima__ Посмотреть сообщение
1 -> 2
1 -> 3
2 -> 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2014, 19:44
Помогаю со студенческими работами здесь

Пояснение typedef
typedef bool (*comparator)(void* fisrt, void* second); что делает *comparator, и что это вобще ?

Пояснение функции
Пожалуйста объясните что делает функция, если можно с пояснением знака -&gt;, про указатели я знаю. void List::addElem2(int qt, int...

Пояснение по шаблонам2
ISO 14882:2003 14.5.4.3/2 Не понял каким образом при инстанцировании шаблона класса автоматически инстанцируется шаблонный метод...

Пояснение по синтаксису
только не надо гнать в гугл, я не могу там найти, т.к. не могу правильно сформировать запрос... Код: //======================== ...

Пояснение по коду
Плиз хелп с кодом, если не сложно, напишите комментарии к // Add // Remove // Get, не понимаю, что в них происходит. Желательно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru