定義:
斐波那契數列指的是這樣一個數列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
這個數列從第三項開始,每一項都等於前兩項之和。
以輸出斐波那契數列的前20項為例:
方法一:
比較標准的做法,是借助第三個變量實現的。
[cpp]
#include<iostream>
using namespace std;
int main(){
int f1=0,f2=1,t,n=1;
cout<<"數列第1個:"<<f1<<endl;
cout<<"數列第2個:"<<f2<<endl;
for(n=3;n<=20;n++){
t=f2;
f2=f1+f2;
f1=t;
cout<<"數列第"<<n<<"個:"<<f2<<endl;
}
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){
int f1=0,f2=1,t,n=1;
cout<<"數列第1個:"<<f1<<endl;
cout<<"數列第2個:"<<f2<<endl;
for(n=3;n<=20;n++){
t=f2;
f2=f1+f2;
f1=t;
cout<<"數列第"<<n<<"個:"<<f2<<endl;
}
cout<<endl;
return 0;
}
方法二:
這是樓主學習的時候自己想到的方法,可以通過兩次加分,一次循環輸出兩個項。
[cpp]
#include<iostream>
using namespace std;
int main(){
int f1=0,f2=1,t,n=1;
cout<<"數列第一項:"<<f1<<endl;
cout<<"數列第二項:"<<f2<<endl;
for(n=2;n<10;n++){
f1=f1+f2;
cout<<"數列第"<<(2*n-1)<<"項:"<<f1<<endl;
f2=f1+f2;
cout<<"數列第"<<(2*n)<<"項:"<<f2<<endl;
}
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){
int f1=0,f2=1,t,n=1;
cout<<"數列第一項:"<<f1<<endl;
cout<<"數列第二項:"<<f2<<endl;
for(n=2;n<10;n++){
f1=f1+f2;
cout<<"數列第"<<(2*n-1)<<"項:"<<f1<<endl;
f2=f1+f2;
cout<<"數列第"<<(2*n)<<"項:"<<f2<<endl;
}
cout<<endl;
return 0;
}