n阶汉诺塔 记住吧。。

#include "bits/stdc++.h"
using namespace std;
int c;

void move(char a,int n,char b)
{
    printf("%2d. Move disk %d from %c to %c
",++c,n,a,b);
}

void hanuo(int n,char a,char b,char c)
{
    if(n == 1)
        move(a,1,c);
    else
    {
        hanuo(n-1,a,c,b);
        move(a,n,c);
        hanuo(n-1,b,a,c);
    }
}

int main()
{
    int n;

    while(cin >> n)
    {
        c = 0;
        hanuo(n,'X','Y','Z');
        cout << endl;
    }
}

也就是a c b       b a c

原文地址:https://www.cnblogs.com/cunyusup/p/7785229.html