Rain3721 @ 2024-11-06 09:04:51
#include<bits/stdc++.h>
using namespace std;
#define MAX 2000
string s1,s2;
int a[MAX],b[MAX],ans[MAX];
int checkmult(){
for(int i=0;i<MAX;i++){
if(ans[MAX-i-1]>9){
ans[MAX-i-2]+=ans[MAX-i-1]/10;
ans[MAX-i-1]%=10;
}
}
return 0;
}
int input_a(string s){
int l=s.size();
for(int i=0;i<l;i++) a[MAX-i-1]=s[l-i-1]-'0';
return 0;
}
int input_b(string s){
int l=s.size();
for(int i=0;i<l;i++) b[MAX-i-1]=s[l-i-1]-'0';
return 0;
}
int mult(){
int i,j;
int m=s1.size();
int n=s2.size();
for(i=0;i<n;i++){
for(j=0;j<m;j++){
ans[MAX-i-j-1]+=b[MAX-1-i]*a[MAX-1-j];
}
}
return 0;
}
void print(){
int j=0;
for(j;j<MAX;j++) if(ans[j]>0) break;
if(j==MAX) cout<<0;
else for(int i=j;i<MAX;i++) cout<<ans[i];
}
int main(){
getline(cin,s1);
getline(cin,s2);
input_a(s1);
input_b(s2);
for(int i=0;i<MAX;i++) ans[i]=0;
mult();
checkmult();
print();
return 0;
}
by zjr2014 @ 2024-11-06 09:38:02
@Rain3721
#include<bits/stdc++.h>
using namespace std;
int a[1000001]={0},alen,b[1000001]={0},blen,c[1000001]={0},clen;
string x,y;
int main(){
cin>>x>>y;
for(int i=0;i<x.size();i++){
a[x.size()-i]=x[i]-'0';
alen++;
}
for(int i=0;i<y.size();i++){
b[y.size()-i]=y[i]-'0';
blen++;
}
for(int i=1;i<=alen;i++){
for(int j=1;j<=blen;j++){
c[i+j-1]+=a[i]*b[j];
c[i+j]+=c[i+j-1]/10;
c[i+j-1]%=10;
}
}
clen=alen+blen-1;
if(c[alen+blen]!=0){
clen++;
}
for(int i=clen;i>=2;i--){
if(c[i]==0){
clen--;
}
else{
break;
}
}
for(int i=clen;i>=1;i--){
cout<<c[i];
}
return 0;
}
by Rain3721 @ 2024-11-06 13:25:12
@zjr2014 过了谢谢
by zjr2014 @ 2024-11-06 15:40:29
@Rain3721 能不能壶关一下
by Rain3721 @ 2024-11-07 12:33:23
@zjr2014 可