算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题

汉诺塔(Tower of Hanoi)问题

算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题_第1张图片

移动规则:
1.每次只能移动一个圆盘;
2.圆盘可以插在A、 B和C中的任何一个塔座上;
3.任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。
4.把A上的圆盘移动到C上。

算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题_第2张图片

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  “<;
    hanoi(m,'A','B','C');
}	

算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题_第3张图片

你可能感兴趣的:(算法设计与分析递归概念之汉诺塔(Tower of Hanoi)问题)