编辑代码

#include <iostream>
#include <string>

using namespace std;

int move(int no, string src, string dst){
    int count = 1;
    cout << "Move " << no << " from " << src << " to " << dst << endl;
    return count;
}

int hanoi(unsigned int n, string src, string tmp, string dst) {
    int count = 0;
    if (n == 0) {
        return -1;
    }
    if (n == 1) {
        count += move(1, src, dst);
    }
    else {
        count += hanoi(n-1, src, dst, tmp);
        count += move(n, src, dst);
        count += hanoi(n-1, tmp, src, dst);
    }
    return count;
}

int main()
{
    unsigned int n = 0;
    cin >> n;
    int count = hanoi(n, "A", "B", "C");
    cout << "I moved " << count << " steps." << endl;
}