Mirapr @ 2021-12-01 01:00:25
#include <stdio.h>
#include <string.h>
void mult(char p1[],char p2[]);
int main(){
char p1[1000],p2[1000];
scanf("%s %s",p1,p2);
plus(p1,p2);
return 0;
}
void mult(char p1[],char p2[]){
int l1=strlen(p1);
int l2=strlen(p2);
int i;
int p3[1000],p4[1000],p5[1000];
for(i=l1-1;i>=0;i--){
p3[l1-1-i]=p1[i]-'0';
}
for(i=l2-1;i>=0;i--){
p4[l2-1-i]=p2[i]-'0';
}
int j;
for(i=0;i<l1;i++){
for(j=0;j<l2;j++){
p5[i+j]+=p3[i]*p4[j];
}
}
int l=l1+l2-1;
for(i=0;i<l;i++){
p5[i+1]+=p5[i]/10;
p5[i]=p5[i]%10;
}
if(p5[l]>0)l++;
while (p5[l - 1] >= 10)
{
p5[l] = p5[l - 1] / 10;
p5[l - 1] %= 10;
l++;
}
while (p5[l - 1] == 0 && l > 1)
l--;
for (int i = l-1; i >=0 ; i--)
printf("%d",p5[i]);
}
by ud2_ @ 2021-12-01 02:15:13
数组太小,存不下题目要求的 2001 位数。