#include <iostream> using namespace std; //n代表盘子的数量,a代表放盘子的塔,b代表中间的辅助塔,c代表目标塔 void hanNuo(int n,char a,char b,char c){ if(n > 0){ //把上面的n-1个盘子,从a塔借助于c塔放到b塔上 hanNuo(n - 1,a,c,b); //把最下面的第n个盘子,从a移动到c cout<<a<<" To "<<c<<endl; //将b塔上的n-1个盘子,从b移动到c借助于a hanNuo(n - 1,b,a,c); } } int main(){ int n; cin>>n; hanNuo(n,'A','B','C'); } /************************************************************** Problem: 1222 User: admin Language: C++ Result: Accepted Time:10 ms Memory:2072 kb ****************************************************************/