【初学·记录】汉诺塔问题

来源:互联网 发布:安卓抓取网页数据 编辑:程序博客网 时间:2024/05/22 02:20

%%记录一下学习的收获,以后有了好的想法再修改

汉诺塔问题虽然非常简单,但是用到了递归算法

1、汉诺塔问题非类递归


//实现任意汗诺塔问题求解//远正茂//每一塔上的圆盘编号为最大的盘编号最小//例如level=3起始时刻,A塔圆盘编号从上到下(从小到大)标号3 2 1//////#include <iostream>using namespace std;static int count=1;void move(char S,char D,char M ,int level,int m);int main(){char S,D,M;S='A';M='B';D='C';int level;int m;cout<<"please input num:\n";cin>>level;m=level;cout<<"start....\n";move(S,D,M,level,m);return 0;}void move(char S,char D,char M,int level,int m){if(level==1)cout<<"# "<<count++<<" : "<<m<<"----"<<S<<"-->"<<D<<endl;else{move(S,M,D,level-1,m);cout<<"# "<<count++<<" : "<<m-level+1<<"----"<<S<<"-->"<<D<<endl;move(M,D,S,level-1,m);}}


原创粉丝点击