WRTLEO2 @ 2020-03-21 23:14:30
给大家看一下代码
#include<bits/stdc++.h>
using namespace std;
int main(){
char s1[256],s2[256];
int a[256]={},b[256]={},c[256]={},lena,lenb,lenc;
cin>>s1>>s2;
lena=strlen(s1);
lenb=strlen(s2);
for(int i=0;i<lena;i++){
a[lena-i]=s1[i]-48;
}
for(int i=0;i<lenb;i++){
b[lena-i]=s2[i]-48;
}//倒叙存储
for(int i=1;i<=lenb;i++){
int x=0;//用于存放进位
for(int j=1;j<=lena;j++){
c[i+j-1]=a[j]*b[i]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+lena]=x;//把进位放在最高位上
}
lenc=lena+lenb;
while(c[lenc]==0&&lenc>1){
lenc--;
}
for(int i=lenc;i>0;i--){
cout<<c[i];
}
return 0;
}
问一下,我还有救吗?
by twelveZ @ 2020-03-21 23:17:41
@WRTLEO2 数组小了,开2000+
by WRTLEO2 @ 2020-03-21 23:19:31
@code_universe 数组开小了?可我TLE了啊
by twelveZ @ 2020-03-21 23:20:59
@WRTLEO2 越界会产生各种各样的玄学错误,不一定是RE.
by WRTLEO2 @ 2020-03-21 23:22:53
谢谢大佬,已关注
by 给我一个笑容 @ 2020-03-29 13:50:55
@WRTLEO2
for(int i=0;i<lenb;i++){
b[lena-i]=s2[i]-48;
}//倒叙存储
你这块的下标写错了,是应该是lenb(捂脸)
by WRTLEO2 @ 2020-03-29 14:02:50
@给我一个笑容 谢谢(捂脸