C++ 斐波拉契 河內塔

幾個實例

1.斐波拉契數列

#include <iostream>
#include <iomanip>
using namespace std;
int fbin(int i){
    if((i==1)||(i==2)){
        return 1;
    }else{
        return fbin(i-1)+fbin(i-2);
    }
}
int main(){
    for (int i=1;i<=20;i++){
        cout<<"數列的第"<<i<<"項是"<<fbin(i)<<endl;
        if (i%5==0)
            cout<<'\n'<<endl;
    }
    return 0;
}


2.河內塔問題

解:最大的餅移動到最下面以後,對問題本身不產生影響。

#include <iostream>
using namespace std;
int hanio(int num,char aa,char bb,char cc);
int main(){
    int num;
    cout<<"請輸入河內塔的圓餅個數(>0)"<<endl;
    cin>>num;
    hanio(num,'A','B','C');
    return 0;
}
int hanio(int num,char aa, char bb,char cc){
    if (num>0){
        hanio(num-1,aa,cc,bb);
        cout<<"將第"<<num<<"圓餅從第"<<aa<<"塔放到"<<cc<<""<<endl;
        hanio(num-1,bb,aa,cc);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章