文章

16

粉丝

134

获赞

0

访问

4.3k

头像
Hanoi塔问题 题解:注意输出格式,相邻输出之间有3个空格
P1082 复旦大学机试题
发布于2024年4月10日 09:46
阅读数 157

//汉诺塔输出每一个步骤,五个一换行
#include<bits/stdc++.h>
using namespace std;

int step;//记录移动步数

void Hanoi(int n, char a, char b, char c) {
    if(n == 1) {
        if((step + 1) % 5 == 0)
            cout << a << "-->" << c << endl;
        else
            cout << a << "-->" << c << "   ";
        step++;
        return;
    }
    Hanoi(n - 1, a, c, b);
    Hanoi(1, a, b, c);
    Hanoi(n - 1, b, a, c);
}

int main() {
    int n;
    while(cin >> n) {
        if(n == 0)
            break;
        step = 0;
        Hanoi(n, 'A', 'B', 'C');
        cout << endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发