汉诺塔c语言程序代码.doc

上传人:scccc 文档编号:12163225 上传时间:2021-12-02 格式:DOC 页数:2 大小:21.50KB
返回 下载 相关 举报
汉诺塔c语言程序代码.doc_第1页
第1页 / 共2页
汉诺塔c语言程序代码.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《汉诺塔c语言程序代码.doc》由会员分享,可在线阅读,更多相关《汉诺塔c语言程序代码.doc(2页珍藏版)》请在三一文库上搜索。

1、汉诺塔c语言程序代码(通过VC+6.0验证)(附讲解) 让我们先看晉代码吧#includc <stdio.h>int hj(int a,int b, int c,int i)int t;if(i=l)printfC%d->%dn,>,c);elset=c;c=b;b=t;hj(a,b,cj-l);printfC%d->%dnH,a,b);a=c;c=t; l=b; b=c;hj(%b“l);return 0;main()int %b,c,i;a=l;b=2;c=3;print"请输入汽诺塔的盘片);scanfT%<T,&i);hj(a,b,

2、cj);ruturn 0;以上是汉诺塔的代码,该程序主要是运用了递归的思想,比如數学中的f(x)=f(x-l)+F(x-2), 在本程序中为:int hj(int ajm b, int cjm i)int t;if(i=l)printf(,%d->%dnH,a,c);elset=c;c=b;b=t;hj(a,b,cjl);也就是说,我们在这个函數中再次调用这个函數,相当于一个循环,而在再次调用的过程中, i的值变成i-1,就类似于f (rl),这样层层调用,最终就交成当匸1的时侯的值,然后通过 运算,计算出想要得到的值。汉诺塔的数值分析:我们可以发现,当只有一个竞的时侯,我们只棗要做1-

3、>3 (就是把第一个柱于上的最顶端 的竟移动到第三根柱子,以下不再解释)当有两个倉的时侯,爱121->3 2->3三个嵐子畏:1->31->2 3->21->32->12->31->3分析一下可以得出以下结论:初始值a=l b=2 c=3个嵐子就爱a->c两个克子与一个盘于的关系畏:第一步:b与c交换值,然后打印a-Ac第二步:打印a->b第三步:a与c交换值,b与c交换值,打印a-Ac进一步分析,便可以得出以下结论只要竟于數量为i (i大于1),那么它就有三部分第一部分,b与c交换值,然后运行i-1第二部分,打印a->b第三部分,;I与c交换值,b与C交换值,然后运行i-1程序裘示便爱:if(i=l)printf("%d->%dn",a,c);elset=C;c=b;(交換值)b=t;hj(a,b,c,i-l);printfC%d->%dn",a,b);t=a;a=c;c=t; (ac 交换)t=b;b=c;c=t; (be 交换)hj(a,b,c,i-l);不明加QQ765233918 (请写清备注)如有侵权请联系告知删除,感谢你们的配合!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1