递归实现汉诺塔

来源:互联网 发布:迈阿密大学知乎 编辑:程序博客网 时间:2024/05/22 15:36

递归

#include<iostream>using namespace std;class Hanoi{public:Hanoi(int i):totalDisks(i){};void solve();private:int totalDisks;void moveOne(int diskID,int from,int to);void move(int diskNums,int from,int tmp,int to);};void Hanoi::solve(){move(totalDisks,1,2,3);}void Hanoi::moveOne(int diskID,int from,int to){cout<<"Move Disk No."<<diskID<<" from "<<from<<" to "<<to<<endl;}void Hanoi::move(int diskNums,int from,int tmp,int to){if(diskNums==1){moveOne(1,from,to);}else{move(diskNums-1,from,to,tmp);moveOne(diskNums,from,to);move(diskNums-1,tmp,from,to);}}int main(){Hanoi ht(3);ht.solve();return 0;}





原创粉丝点击