B2214shengmin @ 2022-06-25 21:32:53
#include<bits/stdc++.h>
using namespace std;
int int1[1010],int2[1010];
char str1[1010],str2[1010];
void init(char a[],int *b){//字符转数组
int l=strlen(a);
for(int i=0;i<l;i++){
b[i]=a[l-i-1]-'0';
}
}
void mult(char a[],char b[]){//高精*高精
init(a,int1);init(b,int2);
int c[2022],i,j;
memset(c,0,sizeof(c));
int len_a=strlen(a),len_b=strlen(b);
for(i=0;i<len_a;i++){
for(j=0;j<len_b;j++){
c[i+j]=c[i+j]+int1[i]*int2[j];
c[i+j+1]=c[i+1+j]+c[i+j]/10;//进位
c[i+j]%=10;//保留当前位置乘积
}
}//i=len_a-1,b=len_b-1
int k=len_a+len_b-1;
while(c[k]>=10){
c[k+1]=c[k]/10;
c[k]%=10;
k++;
}
while(k>0&&c[k]==0)k--;
for(int h=k;h>=0;h--)cout<<c[h];
}
int main() {
while(scanf("%s%s",str1,str2)==2){
memset(int1,0,sizeof(int1));
memset(int2,0,sizeof(int2));
mult(str1,str2);
cout<<endl;
}
return 0;
}
by ajahjahah @ 2022-06-25 21:37:42
每个数字不超过
10^{2000}
RE了一般就是数组开小了,读读题啊
by ajahjahah @ 2022-06-25 21:43:51
@B2214shengmin 提交所有都与题解一样怎么解释
by ajahjahah @ 2022-06-25 21:48:59
马上就举报
洛谷非常重视学术诚信。此类行为将会导致您成为作弊者。 具体细则请查看洛谷社区规则。
by B2214shengmin @ 2022-06-25 21:50:22
还错了!!! 改成20100了还不行????
#include<bits/stdc++.h>
using namespace std;
int int1[20100],int2[20100];
char str1[20100],str2[20100];
void init(char a[],int *b){//字符转数组
int l=strlen(a);
for(int i=0;i<l;i++){
b[i]=a[l-i-1]-'0';
}
}
void mult(char a[],char b[]){//高精*高精
init(a,int1);init(b,int2);
int c[2022],i,j;
memset(c,0,sizeof(c));
int len_a=strlen(a),len_b=strlen(b);
for(i=0;i<len_a;i++){
for(j=0;j<len_b;j++){
c[i+j]=c[i+j]+int1[i]*int2[j];
c[i+j+1]=c[i+1+j]+c[i+j]/10;//进位
c[i+j]%=10;//保留当前位置乘积
}
}//i=len_a-1,b=len_b-1
int k=len_a+len_b-1;
while(c[k]>=10){
c[k+1]=c[k]/10;
c[k]%=10;
k++;
}
while(k>0&&c[k]==0)k--;
for(int h=k;h>=0;h--)cout<<c[h];
}
int main() {
while(scanf("%s%s",str1,str2)==2){
memset(int1,0,sizeof(int1));
memset(int2,0,sizeof(int2));
mult(str1,str2);
cout<<endl;
}
return 0;
}
by B2214shengmin @ 2022-06-25 21:50:55
?
by B2214shengmin @ 2022-06-25 21:51:29
@lao_ba ?
by ajahjahah @ 2022-06-25 22:02:22
@B2214shengmin
c[i+j]=c[i+j]+int1[i]*int2[j];
而且你一道高精都过不了
疫情控制怎么过的?
洛谷已经写了
抄袭、复制题解,以达到刷 AC 率/AC 数量或其他目的的行为,在洛谷是严格禁止的。
洛谷非常重视学术诚信。此类行为将会导致您成为作弊者。 具体细则请查看洛谷社区规则。
提交题解前请务必阅读题解审核要求及反馈要求。
by B2214shengmin @ 2022-06-25 22:08:33
我问老师的行不行?
by B2214shengmin @ 2022-06-25 22:09:23
@lao_ba
by B2214shengmin @ 2022-06-25 22:11:58
@lao_ba 我在附中的网站做过