开发者社区> 问答> 正文

C语言:采用递归调用函数方法计算Fibonacci数列的前20项

C语言:采用递归调用函数方法计算Fibonacci数列的前20项

展开
收起
知与谁同 2018-07-18 15:08:49 9905 0
4 条回答
写回答
取消 提交回答
  • 社区管理员
    #include <stdio.h>
    #define N 20
    main(){
    int f(int n);
    int i;
    for(i=1;i<=N;i++){
    printf("%-6d",f(i));
    if(i%5==0)
    printf("\n");
    }
    printf("\n");
    }

    int f(int n){
    if(n==1 || n==2)
    return 1;
    else
    return (f(n-2)+f(n-1));
    }
    2019-07-17 22:55:12
    赞同 展开评论 打赏
  • long fibonacci(int n)
    { long t;
    if (n=2)
    { t=1;
    return t;
    }
    if (n=1)
    { t=1;
    return t;
    }
    t=fibonacci(n-1)+fibonacci(n-2);
    return t;

    }

    1、没有调试;
    2、主 函数 自己 写;
    2019-07-17 22:55:12
    赞同 展开评论 打赏
  • 12535
    #include <stdio.h>
    #define N 20
    main(){
    int f(int n);
    int i;
    for(i=1;i<=N;i++){
    printf("%-6d",f(i));
    if(i%5==0)
    printf("\n");
    }
    printf("\n");
    }

    int f(int n){
    if(n==1 || n==2)
    return 1;
    else
    return (f(n-2)+f(n-1));
    }
    2019-07-17 22:55:12
    赞同 展开评论 打赏
  • 杀人者,打虎武松也。

    使用递归进行操作时,关键是设置好递归条件。斐波那契数列的定义如下:

     f2 = f0 + f1 = 0 + 1 = 1,所以条件可以设置成当n==1或者n==2时,返回1。其它项则依次递归调用即可。 #include <stdio.h>
    int f(int n){
    if(n==1 || n==2)
    return 1;
    else
    return (f(n-2)+f(n-1));
    }
    int main(){
    const int num = 20;
    int i;
    for(i=1;i<=num;i++){
    printf("%-6d",f(i));
    if(i%5==0)
    printf("\n");
    }
    printf("\n");
    return 0;
    }

    2019-07-17 22:55:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载