任何人都可以解释这个程序吗?我特别想知道参数如何传递给函数tower
以及递归如何工作。了解河内塔的递归解决方案
下面是代码:
#include<stdio.h>
#include<conio.h>
void main()
{
int n;
clrscr();
printf("Enter the no. of disks");
scanf("%d",&n);
tower(n,'S','D','T');
getch();
}
tower(int n,char SOURCE,char DEST,char TEMP)
{
if(n>0)
{
tower(n-1,SOURCE,TEMP,DEST);
printf("\nMove disk %d from %c to %c",n,SOURCE,DEST);
tower(n-1,TEMP,DEST,SOURCE);
}
return;
}
如果它缩进,它可能会少得多 - 0 - –
递归不是因为递归混淆不如混淆递归不如混淆...... – Aerovistae
这是河内问题塔的典型递归解决方案:http://www.cs.cmu.edu/~cburch/survey /recurse/hanoiimpl.html – SubSevn