#includevoid move(char pos1, char pos2) { printf("%c->%c ", pos1, pos2); } void hanoi(int n, char pos1, char pos2, char pos3)//pos1为初始盘,pos2为中转盘,pos3为目的盘 { if (n == 1) { move(pos1, pos3);//如果只有一个盘,直接将一个盘从初始盘移到目的盘 } else { hanoi(n - 1, pos1, pos3, pos2);//有n个盘,将n-1个盘从初始盘移到中转盘 move(pos1, pos3);//将第n个盘从初始盘移到目的盘 hanoi(n - 1, pos2, pos1, pos3);//将n-1个盘从中转盘移到目的盘 } } int main() { int n; scanf("%d", &n); hanoi(n, 'A', 'B', 'C'); return 0; }



