qq_51455387 2021-05-23 15:12 采纳率: 100%
浏览 408
已采纳

使用C语言用递归法求斐波那契数列,(套用函数)

不知道怎么编写函数

#include<stdio.h>
int fun(int n)      //n代表第几项。特别指出:0是第0项,不是第1项。
{
    if (n <= 1)
        return n;
    else
        return fun(n-1) + fun(n-2);
}
 
int main()
{
    int n;
    printf("请输入要输出多少项(自然数)斐波那契数列:");
    scanf("%d",&n);
    //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
    int i;
    for (i = 0; i < n+1; i++)         //输出所有项
    {
        printf("%d, ", fun(i));
        if (i != 0 && i%5 == 0)     //每五项进行一次换行(第一行多一个第0项)
            printf("\n");
    }
    printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项
    return 0;
}
如果把int main()放在头文件的下面这个程序该怎么改

谢谢您

  • 写回答

3条回答 默认 最新

  • 关注
    #include<stdio.h>
    //先声明函数
    int fun(int n);
    
    int main()
    {
        int n;
        printf("请输入要输出多少项(自然数)斐波那契数列:");
        scanf("%d",&n);
        //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
        int i;
        for (i = 0; i < n+1; i++)         //输出所有项
        {
            printf("%d, ", fun(i));
            if (i != 0 && i%5 == 0)     //每五项进行一次换行(第一行多一个第0项)
                printf("\n");
        }
        printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项
        return 0;
    }
    
    int fun(int n)      //n代表第几项。特别指出:0是第0项,不是第1项。
    {
        if (n <= 1)
            return n;
        else
            return fun(n-1) + fun(n-2);
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)