快乐打码 2023-01-27 14:06 采纳率: 70.6%
浏览 45

请问我写的这是出了什么问题,有的样例能过有的不能过,要怎么改

img

输入样例:
1 8
输出样例:
1 1 2 3 5
8 13 21
输入样例:
20 20
输出样例:
6765
输入样例:
9 30
输出样例:
34 55 89 144 233
377 610 987 1597 2584
4181 6765 10946 17711 28657
46368 75025 121393 196418 317811
514229 832040
输入样例:
76 90
输出样例:
3416454622906707 5527939700884757 8944394323791464 14472334024676221 23416728348467685
37889062373143906 61305790721611591 99194853094755497 160500643816367088 259695496911122585
420196140727489673 679891637638612258 1100087778366101931 1779979416


#include<stdio.h>
int main(){
    int A,B;
    int a[91]={1,1},count=0;    
    scanf("%d%d",&A,&B);
    for(int i=2 ; i<90 ; i++)
        a[i]=a[i-1]+a[i-2];

    for(int j=A-1; j<=B-1;j++){
        count++;
        if(count==5){
    printf("%d\n",a[j]);
        count=0;
        }else if(count==B){
     printf("%d",a[j]);
        }else{
            printf("%d ",a[j]);}
}
}

    


  • 写回答

3条回答 默认 最新

  • P2441M 2023-01-27 14:14
    关注

    应该是数太大溢出了,改成 long long 就行。

    #include<stdio.h>
    int main(){
        int A,B;
        long long a[91]={1,1},count=0;    // 改成 long long
        scanf("%d%d",&A,&B);
        for(int i=2 ; i<90 ; i++)
            a[i]=a[i-1]+a[i-2];
     
        for(int j=A-1; j<=B-1;j++){
            count++;
            if(count==5){
        printf("%lld\n",a[j]);  // printf 也要改,后面的也是
            count=0;
            }else if(count==B){
         printf("%lld",a[j]);
            }else{
                printf("%lld ",a[j]);}
    }
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月27日

悬赏问题

  • ¥15 暴雪战网api相关问题
  • ¥15 而使用UE5引擎的 工具选项里 打开c++ visual studio 就会有部分显示加载失败 如图 加载失败的这张图 请问是什么原因
  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。