斐波那契额数列的递归和非递归方法,纯C语言

為{幸葍}努か 提交于 2020-02-28 12:19:54
#include <stdio.h>
#include <stdlib.h>

int feibo(int n);//非递归
int feiboDigui(int n);//递归
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
    printf("%d\n",feiboDigui(n));//目前是递归方法,非递归换一下就ok
    }
    return 0;
}

int feibo(int n){//非递归
      int sum1 = 1,sum2 = 1, sum,i;
      if(n == 1){
            return 1;
      }
      if(n == 2){
            return 1;
      }
      for(i=3;i<=n;i++){
            sum = sum1+sum2;
            sum1 = sum2;
            sum2 = sum;
      }
      return sum;
}
int feiboDigui(int n){
      if(n==1||n==2){  //递归函数出口
            return 1;
      }else{
            return (feiboDigui(n-2)+feiboDigui(n-1));
      }
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!