[原创]求助:一个有Hanoi的问题
这是一个有关“汉诺塔”的程序题。里面有几个函数传递没搞清楚。
程序如下:
#include <stdio.h> void move(char x,char y) { printf("%c-->%c\n",x,y); }
void hanoi(int n,char one, char two, char three)//将n个盘从one座借助two座,移到three座 { if(n==1) move(one,three); else { hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } }
int main() { int m; printf("input the number of diskes:"); scanf("%d",&m); printf("The step to moving %3d diskes:\n",m); hanoi(m,'A','B','C'); return 0; }
我的问题是: hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three);
这些函数传递是怎么样操作的,麻烦给我详细一点的解释。