问题 G: 算法3-5:n阶Hanoi塔问题_数据结构题目集

问题 G: 算法3-5:n阶Hanoi塔问题_数据结构题目集_02

#include <bits/stdc++.h>
using namespace std;
int count = 1;

void move(char x, int n, char y) {
printf("%2d. Move disk %d from %c to %c\n", count++, n, x, y);
}

void hanoi(int n, char x, char y, char z) {
if (n == 1)
move(x, 1, z);
else {
hanoi(n - 1, x, z, y);
move(x, n, z);
hanoi(n - 1, y, x, z);
}
}

int main() {
int n, m, j, k, i, T;
while (scanf("%d", &n) != EOF) {
hanoi(n, 'X', 'Y', 'Z');
count = 1;
printf("\n");
}


return 0;
}