C语言解决汉诺塔问题!
很难受,看了很多资料才明白.....
对这个问题分析,发现思路如下:有n个黄金盘,要先把n-1个弄到B柱上,再把第n个弄到C柱上,然后把n-1个借助A柱弄到C柱上。
实现的函数如下:
void f(int n,char x,char y,char z)
{ if(n==1)
printf("x to z");
else
{ f(n-1,'x','z','y'); //这个函数先进行完再向下进行下一个!!
printf("x to z");
f(n-1,'y','x','z');
}
}