汉诺塔问题
汉诺塔问题运用函数的递归,递归就像循环
先把第一次移动定义好,第一次可以直接从起始移到目标,接下来的n-1个都要先从起始移到目标再回到借力柱,最后在函数末尾写上递归的代码。
完整代码:
#include<iostream>
using namespace std;
void hanoi(int n,char from,char aux,char to)
{
if(n==1)
{
cout<<1<<": "<<from<<" -> "<<to<<endl;
return ;
}
hanoi(n-1,from,to,aux);
cout<<n<<": "<<from<<" -> "<<to<<endl;
hanoi(n-1,aux,from,to);
}
int main()
{
int n;
char from,aux,to;
cin>>n>>from>>aux>>to;
hanoi(n,from,aux,to);
return 0;
}