请问有solutions 吗?(标签-C++|关键词-自底向上)

问题遇到的现象和发生背景

AICE C++二级真题

问题相关代码,请勿粘贴截图

42.汉诺塔问题
【问题描述】
汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金钢石柱子,其中一根柱子自底向上叠着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
如图所示,A为起始柱,C为目标柱:

img


输入n,表示 表示初始时A柱上的圆盘数量,输出圆盘采用最少步数移动的过程。
【输入格式】
仅一行,一个整数n,表示初识时A柱上的圆盘数量。
【输出格式】
每行两个字符,用一个箭头“->”隔开,表示圆盘从一个柱子移动到另一个柱子。
【输入样例】
3
【输出样例】
A->C
A->B
C->B
A->C
B->A
B->C
A->C
【数据范围】
1<=n<=6


#include <iostream>
using namespace std;

void hanno(int n, char a, char b, char c)
{
    if (n > 0 && n< 6)
    {
        hanno(n - 1, a, c, b);
        cout << n << ":" << a << "->" << c << endl;
        hanno(n - 1, b, a, c);
    }
}

int main()
{
    hanno(3, 'A', 'B', 'C');
    return 0;
}