【递归】汉诺塔游戏

原题传送门

思路


这道题卡了我一个小时,是我在CODEVS上遇到的第一道难题,不偷看一眼题解的话可能真的想不出来QAQ,自己是真的菜啊。

主要思路

一阶汉诺塔就是把A移动到C
而n(n>1)阶汉诺塔相当于执行了三大步骤:
1.在ACB的顺序下执行了n-1阶汉诺塔的移法
2.从A->C移动了最大盘
3.在BAC的顺序下执行了n-1阶汉诺塔的移法
很明显,递归就完了。

Code


#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

int n,k=1,i;

inline void move(int lv,char A,char C)
{
    cout<>n;
    for(i=1;i<=n;i++)k*=2;
    cout<

你可能感兴趣的:(【递归】汉诺塔游戏)