【发布时间】:2013-08-31 14:17:04
【问题描述】:
谁能解释一下这个程序?我特别想知道参数是如何传递给函数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;
}
【问题讨论】:
-
如果它是缩进的可能会少很多混乱-_-
-
递归不像递归那样令人困惑不像递归那样令人困惑......
-
这是河内塔问题的规范递归解决方案:cs.cmu.edu/~cburch/survey/recurse/hanoiimpl.html
-
递归,adj:见 recursive
-
@SubSevn 你打败了我,得到了完全相同的评论...... :)
标签: c recursion towers-of-hanoi