幾個實例
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;
}