几个实例
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;
}