当前位置:编程学习 > C/C++ >>

C++输出斐波那契数列的几种方法

定义:

斐波那契数列指的是这样一个数列: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;
}

 

补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,