首页 > 编程知识 正文

c语言汉诺塔程序,汉诺塔c语言详解

时间:2023-05-03 07:44:11 阅读:194901 作者:4226

c语言汉诺塔递归

思路是:汉诺塔中n个圆盘,首先将1–>n-1个盘子看成一个盘,由于n-1上面的盘都比n-1小,所以用n-1代替1–>n-1个盘进行移动,只有两个盘子在汉诺塔上的移动是A->B,A->C,B->C,n盘在回归最终位的后,对n-1盘再次进行类似于n盘的操作。直至n为1为止,递归结束。
代码如下:

#include <stdio.h>#include <string.h>void move(char A,int n,char B)//定义一个move函数,来打印往哪挪,谁挪。 {printf(" %d 从%c挪到%cn",n,A,B);}void Hanoi(int n,char A,char B,char C)//汉诺塔递归 {if(n==1)//递归终结条件 move(A,1,C);else{Hanoi(n-1,A,C,B);move(A,n,C);Hanoi(n-1,B,A,C);}}int main(){int a;char A = 'A', B = 'B', C = 'C';printf("请输入汉诺塔的层数:");scanf("%d",&a);Hanoi(a,A,B,C);return 0;}

(完)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。