本地能过,但是用洛谷的C 就是全错

P1303 A*B Problem

zzh0806 @ 2024-06-09 17:10:34

#include <stdio.h>
#include <string.h>
int main()
{
    char a[50001],b[50001];
    int num_a[50001], num_b[50001];
    int c[50001];
    int length1,length2,length;
    memset(a,'0',sizeof(a));
    memset(b,'0',sizeof(b));
    gets(a);
    gets(b);

    length1=strlen(a);
    length2=strlen(b);

    for(int i=1;i<=length1;i++)
    {
        num_a[i]=a[length1-i]-'0';
    }

    for(int i=1;i<=length2;i++){
        num_b[i]=b[length2-i]-'0';
    }

    for(int i=1;i<=length1;i++)
    {
        for(int j=1;j<=length2;j++)
        {
            c[i+j-1]=c[i+j-1]+num_a[i]*num_b[j];
        }
    }

    length=length1+length2;
    for(int i=1;i<=length;i++)
    {
        if(c[i]>9)
        {
            c[i+1]=c[i+1]+c[i]/10;
            c[i]=c[i]%10;
        }
    }
    while (c[length]==0&&length>1)length--;

    for(int i=length;i>=1;--i)
        printf("%d",c[i]);
    return 0;
}

by xk2013 @ 2024-06-09 17:19:09

@zzh0806 getsC++14 中被弃用了,请使用 fgets 喵~(求关)


|