60分,不知道为什么,求助大佬们

P5730 【深基5.例10】显示屏

su180 @ 2023-11-01 16:10:28

大佬们,我后两个测试点(估计是数据比较大的)WA,我下载了四号测试点数据: 60 012345670123456789890123456789012345678901012345678923456789 我的代码如下(本蒟蒻比较暴力):

#include<stdio.h>
#include<math.h>
#include<string.h>
int main ()
{
    int n,x,y,i,j;
    scanf("%d",&n);
    scanf("%d",&x);
    char a[5][4*n-1];
    int b[n];
    for(i=0;i<5;i++){
        for(j=0;j<4*n-1;j++){
            a[i][j]='.';
        }
    }
    for(i=n-1;i>=0;i--){
        y=x/pow(10,i);
        b[n-i-1]=y;
        x-=y*pow(10,i);
    }

    for(i=0;i<n;i++){
        j=4*i;
        if(b[i]==0){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j]=a[1][j+2]=a[2][j]=a[2][j+2]=a[3][j]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==1){
            a[0][j+2]=a[1][j+2]=a[2][j+2]=a[3][j+2]=a[4][j+2]='X';
        }else if(b[i]==2){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j+2]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==3){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j+2]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==4){
            a[0][j]=a[0][j+2]=a[1][j]=a[1][j+2]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j+2]=a[4][j+2]='X'; 
        }else if(b[i]==5){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==6){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==7){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j+2]=a[2][j+2]=a[3][j+2]=a[4][j+2]='X';
        }else if(b[i]==8){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j]=a[1][j+2]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }else if(b[i]==9){
            a[0][j]=a[0][j+1]=a[0][j+2]=a[1][j]=a[1][j+2]=a[2][j]=a[2][j+1]=a[2][j+2]=a[3][j+2]=a[4][j]=a[4][j+1]=a[4][j+2]='X';
        }   
    }
    for(i=0;i<5;i++){
        for(j=0;j<4*n-1;j++){
            printf("%c",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

球球了QAQ


by Steve_xh @ 2023-11-01 16:25:26

@su180 你的x怎么能是int呢,60位数应该是用字符串处理


by RFco @ 2023-11-01 16:33:47

@Steve_xh 同


|