斐波拉契数列简单总结

斐波拉契数列总结

问题提出:

分别用递归和非递归代码计算斐波拉契数列;比较效率,分析效率差异可能产生的原因。

 

#include<stdio.h>
#include<stdlib.h>
//递归实现
int list(int n){
    if(n==0||n==1)
        return n;
    else if(n>1)
        return list(n-1)+list(n-2);
    else
        return 0;
}
//非递归实现
int text(int n){
    int i,sum,sumn_1,sumn_2;
    sumn_1=1;//F(1)=1
    sumn_2=0;//F(0)=0
    for(i=2;i<=n;i++){
            sum=sumn_1+sumn_2;//F(n)=F(n-1)+F(n-2)
            sumn_2=sumn_1;
            sumn_1=sum;
        }
    return sum;
}
int main(){
    int n;
    printf("请输入n的大小");
    scanf("%d",&n);
    list(n);
    text(n);
    printf("递归:斐波拉契数列值为:%d
",list(n));
    printf("非递归:斐波拉契数列值为:%d",text(n));
    system("pause");
    return 0;
}

结果截图:

原文地址:https://www.cnblogs.com/codercql/p/11925458.html