汉诺塔问题

//汉诺塔问题

void move(char getone,char putone)//将一个盘子从一根针移到另一根上

{ cout<<getone<<"-->"<<putone<<endl; } void hanoi(int n,char one,char two,char three)//将多个盘子从一根针移到另一根上

{ if(n==1) move(one,three); else { hanoi(n-1,one,three,two);//将A上n-1个盘子移动到B上(借助C)

        move(one,three);//把A上剩下的一个盘子移动到C上

        hanoi(n-1,two,one,three);//将n-1个盘子从B移到C上(借助A)

 } }

 这里采用了最简单的递归实现方式,看代码注释即可。

你可能感兴趣的:(问题)