斐波那契数列的非递归实现

前段时间遇到一道题让用递归和非递归的方法实现斐波那契数列,做了下,顺便记录下来

递归方法:


#include<iostream>
using namespace std;
int f(int i){
    if(i==1||i==2)
        return 1;
    else return f(i-1)+f(i-2);
}
int  main()
{
    cout<<f(10)<<endl;
    return 0;
}

 

非递归的实现:

#include<iostream>
using namespace std;
int main(){
    int n=10;
    int result_p,result_n,result;
    result_p=result=1;
    while (n>2){
        result_n=result_p+result;
        n--;
        result_p=result;
        result=result_n;

    }
    cout<<result<<endl;
    return 0;
}

 

posted @ 2013-11-18 18:14  weilq  阅读(706)  评论(1编辑  收藏  举报