求大佬看看,为什么RE了???

P1303 A*B Problem

Charlie_zs @ 2023-11-26 15:35:54

啊啊啊啊!写了一上午,到底哪里RE了呀!!!

#include <bits/stdc++.h>
using namespace std ;

string q , p ;

string mul( string x , string y )
{
    //a[]数组乘数,b[]数组乘数,c[]=a[]*b[]
    int a[1005] = {} , b[1005] = {} , c[1005] = {} ;
    int k = 1 ;
    //a[]数组转换成数字 
    for( int i = x.size() - 1 ; i >= 0 ; i -- )
    {
        a[k] = x[i] - '0' ;
        k ++ ;
    }
    k = 1 ;
    //b[]数组转换成数字 
    for( int i = y.size() - 1 ; i >= 0 ; i -- )
    {
        b[k] = y[i] - '0' ;
        k ++ ;
    }
    //计算 
    for( int i = 1 ; i <= y.size() ; i ++ )
    {
        //外层循环:循环b数组的每一位
        for( int j = 1 ; j <= x.size() ; j ++ )
        {
            //内层循环:模拟a*b[i]
            c[i + j - 1] += b[i] * a[j] ;
            //考虑进位
            c[i + j] += c[i + j - 1] / 10 ;
            c[i + j - 1] %= 10 ;
        }
    }
    string z = "" ;
    //进位,长度加一 
    int len  = x.size() + y.size() ;
    while( c[len] == 0 && len > 1 ) len -- ;
    //转换成字符串 
    for( int i = len ; i >= 1 ; i -- )
    {
        z = z + char( c[i] + '0' ) ;
    }
    //输出 
    return z ;
}

int main()
{
    cin >> q >> p ;
    cout << mul( q , p ) ;
    return 0 ;
}

by ServanteF @ 2023-11-26 15:45:19

康康


by Rainbow_rabbit @ 2023-11-26 15:48:37

c[]小了


by guaiguaitu @ 2023-12-08 21:59:12

@Charlie_zs a,b,c数组都开小了,至少要开4002


|