你好,1WA,5RE

P1303 A*B Problem

XSean @ 2022-08-13 22:41:08


#include <iostream>
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int a[1001]={},b[1001]={},c[1001];
int main(){
/*
freopen (".in","r",stdin);
freopen (".out","w",stdout);
*/
cin>>s1>>s2;
int len1=s1.length(),len2=s2.length();
for(int i=len1-1,j=1;i>=0,j<=len1;i--,j++){
    a[j]=s1[i]-48;
}
for(int i=len2-1,j=1;i>=0,j<=len2;i--,j++){
    b[j]=s2[i]-48;
}
for(int i=1;i<=len2;i++){
    for(int j=1;j<=len1;j++){
        c[i+j-1]+=a[j]*b[i];
        c[i+j]+=c[i+j-1]/10;
        c[i+j-1]%=10;
    }
}
int maxl=len1+len2;
for(int i=maxl;i>=1;i--){
    if(c[i]==0){
        maxl--;
    }else{
        break;
    }
}
for(int i=maxl;i>=1;i--){
    cout<<c[i];
}

/*
fclose(stdin);
fclose(stdout);
*/
    return 0;
}

by EmoOier @ 2022-08-13 22:57:35

py大法好啊

s1=input()
s0=input()
print("{}".format(int(s1)*int(s0)))

用C++高精做正在研究


by DJRicher @ 2022-08-13 23:00:13

c数组开2000。


by XSean @ 2022-08-13 23:04:05

@zzgwhk 开了,还是2个测试点没有过


by Super_Supper @ 2022-08-13 23:06:16

@Sean_xzx Hack:0 0


by jaco2559 @ 2022-08-13 23:06:47

@Sean_xzx 将

for(int i=maxl;i>=1;i--){

改为

for(int i=maxl;i>1;i--){

by jaco2559 @ 2022-08-13 23:07:15

您对于多余的0多判了一位


by jaco2559 @ 2022-08-13 23:08:28

另外,a,b数组开到2000,c到4000


by DJRicher @ 2022-08-13 23:10:07

@Sean_xzx 可能有2000的数据,你还可能要特判有一个数是0的情况


by XSean @ 2022-08-13 23:16:50

@jaco2559 谢谢


by XSean @ 2022-08-13 23:19:08

@zzgwhk 谢了


| 下一页