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

使用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条)

报告相同问题?