快乐打码 2023-02-01 11:28 采纳率: 69%
浏览 16
已结题

请问我写的有什么问题,要怎么改

任务描述
输出Fibonacci数列中任意两项之和。

输入格式:
两个整数a,b(大于0小于 等于60的正整数),以空格分隔。

输出格式:
输出Fibonacci数列中第a项和第b项之和。

输入样例:
4 6
输出样例:
11
输入样例:
20 30
输出样例:
838805
输入样例:
56 52
输出样例:
258802713816


#include<stdio.h>
int main(){
    int c=0,d=0,e=0,f=0,sum=0,k=0,i;
    int a[60],b[60];
    scanf("%d %d",&c,&d);
    a[0]=1;
    a[1]=1;
    for(i=0;i<60;i++){
        a[i]=a[i-1]+a[i-2];
        b[k++]=a[i++];
    }
    for(i=1;i<=k;i++){
        if(i==c)
            e=b[i];
        if(i==d)
            f=b[i];
    }
    sum=e+f;
    printf("%d",sum);
}

展开全部

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-02-01 11:40
    关注

    C语言代码:

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int a,b,i;
        long long a_b=0,a_0=0,a_1=1;
        scanf("%d%d",&a,&b);
        for(i=0;i<=60;i++)
        {
            if(i==a)
            a_0=a_1;
            if(i==b)
            a_b=a_1;
            a_1=a_0+a_1;
            a_0=a_1-a_0;
        }
        printf("%lld\n",a_0+a_b);
        return 0;
    }
    
    

    看起来程序的代码逻辑是正确的。但是,有一些小的问题。

    数组的定义不正确:您定义的数组大小为 60,而斐波那契数列的项数较多,因此定义数组的大小要足够大。

    数组的遍历不正确:您的代码中的循环语句有些不对。第 4 行的循环只会执行一次,因为在第 9 行您递增了 i。第 10 行的数组 b 是不需要的,请将其删除。

    输出格式不正确:您需要输出 Fibonacci 数列中任意两项之和,而不是所有项之和。

    修正以上问题后的代码如下:

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

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    快乐打码 2023-02-01 12:14

    是部分正确,还有错

    回复
    快乐打码 回复 快乐打码 2023-02-01 12:20

    定义数组为long long就可以了

    回复
编辑
预览

报告相同问题?

问题事件

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

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

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

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

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

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

客服 返回
顶部