如果对其他经典算法感兴趣,可以点击我的主页,有惊喜哟
#include//汉诺塔问题 int move(char x,char y) { printf("n%c->%c",x,y);//将一个圆盘从x移到y } void hanoi(int n,char a,char b,char c)//空类型函数,一整三字符 { if(n==1) move(a,c);// else { hanoi(n-1,a,c,b);//将n-1个圆盘从塔座a移到塔座b,塔座c过渡 move(a,c);//将第n个圆盘从塔座a移到塔座c hanoi(n-1,b,a,c);// 将n-1个圆盘从塔座b移到塔座c,塔座a过渡 } } void main() { int n,i,j=1; printf("请输入要移动的1圆盘数:"); scanf("%d",&n); printf("移动圆盘的过程如下:"); hanoi(n,'A','B','C');//这个赋值很重要 for(i=1;i<=n;j=j*2,i++);//咱写个循环就是为了绕过pow函数 printf("n总共需要的步数为:%d",j-1); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)