ywtank @ 2024-08-21 18:05:23
希望各位大佬帮忙看看
现场
#include <bits/stdc++.h>
using namespace std;
const int N=6000;
char sa[N],sb[N];
int a[N],b[N],c[N];
int main(){
cin >> sa >> sb;
int la=strlen(sa),lb=strlen(sb);
for(int i=0;i<la;i++)a[la-i]=sa[i]-'0';
for(int i=0;i<lb;i++)b[la-i]=sb[i]-'0';
for(int i=1;i<=la;i++){
for(int j=1;j<=lb;j++){
c[i+j-1]+=a[i]*b[j];
}
}
int lc=la+lb;
while(c[lc]==0 && lc>1)lc--;
for(int i=1;i<=lc;i++){
c[i+1]+=(c[i]/10);
c[i]%=10;
}
for(int i=lc;i>0;i--)cout << c[i];
return 0;
}
by guanzisheng2 @ 2024-08-21 18:06:47
#include<bits/stdc++.h>
using namespace std;
char s1[2005],s2[2005];
int l1,l2,l;
int a[2005],b[2005],c[4005];
int main(){
scanf("%s1",s1);
scanf("%s2",s2);
l1=strlen(s1);
l2=strlen(s2);
for(int i=0;i<l1;i++){
a[l1-i]=s1[i]-'0';
}
for(int i=0;i<l2;i++){
b[l2-i]=s2[i]-'0';
}
for(int i=1;i<=l1;i++){
for(int j=1;j<=l2;j++){
c[i+j-1]+=a[i]*b[j];
if(c[i+j-1]>=10){
c[i+j]+=c[i+j-1]/10;
c[i+j-1]=c[i+j-1]%10;
}
}
}
int l;
if(c[l1+l2]>0){
l=l1+l2;
}
else{
l=l1+l2-1;
}
if(a[l1]==0||b[l2]==0){
l=1;
}
for(int i=l;i>=1;i--){
cout<<c[i];
}
}