1、環(huán)境配置:
- 系統(tǒng):win10
- 編程語言:C++
- 編譯器:DevC++
2、算法思想:
簡化步驟,將問題看成是把n個鐵片中的n-1個通過c從a移動到b,剩下的第n個移動從a移動到c,然后再把n-1個通過a從b移動到c,分成三步即可。
3、代碼:
/*
梵塔問題
*/
#include<iostream>
using namespace std;
void f(char x,char y,char z,int n);//n為最底層漢諾塔鐵片的編號,編號越小鐵片越小越靠上!
int main(){
char x = 'a';
char y = 'b';
char z = 'c';
int h = 3; //漢諾塔深度
f(x,y,z,h);
return 0;
}
void f(char x,char y,char z,int n)//把n層hannio塔從x通過y移動到z;
{
if(n!= 0){
f(x,z,y,n-1);
cout<<n<<"通過"<<x<<"移動到"<<z<<endl;
f(y,x,z,n-1);
}
}
4、結(jié)果展示:

結(jié)果2.png
5、反思總結(jié):
遞歸就是自己調(diào)用自己。