小鸟游菜花 2022-02-02 05:31 采纳率: 84.6%
浏览 31
已结题

我想就用斐波拉契数列的那个公式来算,为什么会部分正确呢

img

img

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    float f[a];
    f[0]=f[1]=1;
    int i;
    for(i=0;i<a;i++)
    {
        f[i+2]=f[i]+f[i+1];
    }
    printf("%0.2f",f[a-1]);
    return 0;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-02-02 07:09
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <malloc.h>
    int main()
    {
        int a;
        scanf("%d", &a);
        //float f[a];
        double* f = (double *)malloc(sizeof(double) * a);
        f[0] = f[1] = 1;
        int i;
        for (i = 2; i < a; i++) //for (i = 0; i < a-1; i++)
        {
            f[i] = f[i - 1] + f[i - 2];  //f[i+2]=f[i]+f[i+1];
        }
        printf("%0.2f", f[a-1]);
        free(f);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 已采纳回答 2月12日
  • 创建了问题 2月2日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部