当前位置:编程学习 > VC++ >>

vc++编的汉诺塔计算,他的算法是什么?

补充:#include"iostream.h" void hanota(short int a,short int b,short int c,short int d); void hanota(short int a,short int b,short int c,short int d){ if(a==1) cout<<b<<"->"<<d<<"\n"; else{ hanota(a-1,b,d,c); cout<<b<<"->"<<d<<"\n"; hanota(a-1,c,b,d); } } void main(){ short int a; cout<<"层数:"; cin>>a; cout<<"步骤:"<<"\n"; hanota(a,1,2,3); } 求解计算式。
追问:我的意思是要代码具体运行流程
hanota(a-1,b,d,c);
cout<<b<<"->"<<d<<"\n";
hanota(a-1,c,b,d);

这一段是神马意思,求详解
答案:就是递归,中间那句是移动最底层那块最大的盘从原柱子搬到目标柱子,上面那句是一个汉诺塔,表示在这之前把除最大以外的盘从原柱子搬到过渡柱子,最后一句就是再把这堆盘从过渡柱子搬到目标柱子,然后就完了。
其他:算法是什么?


递归 

上一个:vc ++ 编译器 编译时出现 cannot open file Debug/grame.exe 是什么是意思
下一个:看这个VC ++ 2010 程序怎么不能编译啊,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,