样例都过不了,大佬求助

P1303 A*B Problem

违规用户名971024 @ 2024-02-23 22:19:04

#include<bits/stdc++.h>
using namespace std;
long long c[1000005],jj1[1000005],jj2[1000005];
int main()
{
    string a,b;
    cin>>a>>b;
    int lena=a.size(),lenb=b.size(),lenc;
    for(int i=0;i<lena;i++) jj1[i]=a[lena-i-1]-'0';
    for(int i=0;i<lenb;i++) jj2[i]=b[lenb-i-1]-'0';
    for(int i=0;i<lena;i++)
    {
        for(int j=0;j<lenb;j++)
        {
            c[i+j-1]+=jj1[i]*jj2[j];
            if(c[i+j-1]>9)
            {
                c[i+j]+=c[i+j-1]/10;
                c[i+j-1]%=10;
            }
        }
    }
    lenc=lena+lenb;
    int p=-1;
    for(int i=lenc;i>=1;i--)
    {
        if(c[i]!=0)
        {
            p=i;
            break;
        }
    }
    if(p==-1) cout<<0;
    for(int i=p;i>=1;i--) cout<<c[i];
    return 0;
} 

by Axolotl_awa @ 2024-02-25 12:39:57

@feizhukkksc03

#include<iostream>
using namespace std;
long long c[1000005] = {0},jj1[1000005],jj2[1000005];
int main()
{
    string a,b;
    cin>>a>>b;
    int lena=a.size(),lenb=b.size(),lenc = lena + lenb;
    for(int i=lena - 1;i>=0;i--) jj1[i] = a[lena-i-1] - '0';
    for(int i=lena - 1;i>=0;i--) jj2[i] = b[lenb-i-1] - '0';
    for(int i=0;i<lena;i++)
    {
        for(int j=0;j<lenb;j++)
        {
            c[i + j] += jj1[i] * jj2[j];
        }
    }
    for(int i = 0;i < lenc;i++)
    {
        c[i + 1] += c[i] / 10;
        c[i] %= 10; 
    }
    while (c[lenc - 1] == 0 && lenc > 1)
        lenc--;
    for(int i=lenc - 1;i>=0;i--) cout<<c[i];
    return 0;
} 

给个关注呗~~


by 违规用户名971024 @ 2024-02-25 13:14:53

ok


|