强壮的田螺 2023-04-15 18:19 采纳率: 86.4%
浏览 9
已结题

用函数解决斐波那契数我这种思路对吗?


#include<stdio.h>

int feibo(int n)
{
    int b,c,d;
    if(n>=2)
    {
    b = 0;
    c = 1;
    d = b+c;
    c = b;
    b = d;
    feibo(n-1);
    }
    
    else
    {
        printf("%d",d);
    }
    
}

    void main(){
    
        int n =3;

        getchar();
    }
  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-04-15 18:30
    关注

    基于Monster 组和GPT的调写:

    • 有问题,主要是在feibo()函数中。
    • 先要在feibo()函数的末尾返回一个值。在这里,要返回最终的斐波那契数,而不是只输出结果。要将printf语句移到函数的外面,并将其替换为return d;。
    • 其次在feibo()函数中,每次递归调用时,b和c的值都被重新赋值为0和1。这将导致在后续的递归调用中丢失之前的计算结果。正确的做法是将b和c的值作为参数传递给递归调用的下一次,而不是重新赋值。
    • 最后,在main()函数中,要调用feibo()函数并将其返回值打印出来。

    以下是修改后的代码:

    #include<stdio.h>
    
    int feibo(int n, int b, int c)
    {
        if(n==0)
        {
            return b;
        }
        else if(n==1)
        {
            return c;
        }
        else
        {
            int d = b + c;
            return feibo(n-1, c, d);
        }
    }
    
    int main()
    {
        int n = 3;
        int result = feibo(n, 0, 1);
        printf("%d", result);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 4月15日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值