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

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
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]);}
}
}

    


应该是数太大溢出了,改成 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]);}
}
}

#include<stdio.h>
int main(){
    long long A,B;
    long long a[91]={1,1};
    int 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("%lld\n",a[j]);
        count=0;
        }else if(j==B-1){
     printf("%lld",a[j]);
        }else{
            printf("%lld ",a[j]);}
}
}
 
    

修改如下,供参考:

#include<stdio.h>
int main(){
    int  A,B;  //long long A,B;
    long long a[91]={1,1};
    int count=0;
    scanf("%d%d",&A,&B);
    for(int i=2 ; i<91 ; i++) //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 && j != B-1){//修改
            printf("%lld\n",a[j]);
            count=0;
        }else if(j==B-1){
            printf("%lld",a[j]);
        }else{
            printf("%lld ",a[j]);
        }
    }
    return 0;
}