0
// Tower of Hanoi
#include <stdio.h>
void towers(int, char, char, char);
int main()
{
int num;
clrscr();
printf("Enter the number of disks : ");
scanf("%d", &num);
printf("The sequence of moves involved in the Tower of Hanoi are :\n");
towers(num, 'A', 'C', 'B');
getch();
return 0;
}
void towers(int num, char frompeg, char topeg, char auxpeg)
{
if (num == 1) {
printf("\n Move disk 1 from peg %c to peg %c", frompeg, topeg);
return;
}
towers(num - 1, frompeg, auxpeg, topeg);
printf("\n Move disk %d from peg %c to peg %c", num, frompeg, topeg);
towers(num - 1, auxpeg, topeg, frompeg);
getch();
}
我跑這段代碼,輸出是正確的,但我不明白這個遞歸。請給我解釋一下:}謝謝:]任何人都可以解釋我在C語言河內塔的遞歸嗎?