首页 > 代码库 > 汉诺塔问题

汉诺塔问题

汉诺塔问题是一个纯递归问题,应该是比较简单的

搞定n个盘子时只要搞定n-1个盘子就ok了,
先将n-1个盘子经过左边那个盘子放到中间那个盘子,在把第n个盘子放过去,最后把n-1个盘子放在最左边的那个就ok了。

#include<stdio.h>void move(char A,char C){    printf("%c---%c\n",A,C);}void han(char A,char B,char C,int n){    if(n==1)        move(A,C);    else    {        han(A,C,B,n-1);        move(A,C);        han(B,A,C,n-1);    }}int main(){    int n;    scanf("%d",&n);    han(‘A‘,‘B‘,‘C‘,n);    return 0;}

  

汉诺塔问题