算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题
程序员文章站
2024-03-17 14:04:34
...
汉诺塔(Tower of Hanoi)问题
移动规则:
1.每次只能移动一个圆盘;
2.圆盘可以插在A、 B和C中的任何一个塔座上;
3.任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。
4.把A上的圆盘移动到C上。
void move(char from ,char to) {
cout<<“Move “<<from<<“to”<<to<<endl;
}
void hanoi(int n, char first, char second, char third) {
if(n==1)
move(first,third);
else{
hanoi(n-1,first,third,second);
move(first,third);
hanoi(n-1,second,first,third);
}
}
int main(){
int m;
cout<<“the number of diskes:";
cin>>m;
cout<<"move “<<m<<“ diskes:\n";
hanoi(m,'A','B','C');
}