天天看点

汉诺塔(最简单的版本,三柱子,一次移一个,大的不能在小的上)

#include <iostream>

using namespace std;
int cnt=0;
void move(int n,int s,int z,int e){
    if(n==0) return;
    move(n-1,s,e,z);
    cnt++;cout<<"第"<<n<<"个珠子"<<"从"<<s<<"移动到"<<e<<endl;
    move(n-1,z,s,e);
    //return cnt;
}
int main()
{
    cout<<"输入汉诺塔珠子个数"<<endl;
    int n;cin>>n;
    move(n,1,2,3);
    cout<<"移动次数"<<cnt<<endl;;
    return 0;
}

           

继续阅读