高精度乘法
2025-04-20 11:20:09
发布于:浙江
高精度乘法
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int a1[10000],a2[10000],ji[10000];
int main(){
cin >> s1 >> s2;
int len1 = s1.size();
int len2 = s2.size();
for(int i = 0;i < len1;i++){
a1[i] = s1[len1-1-i]-48;
}
for(int i = 0;i < len2;i++){
a2[i] = s2[len1-1-i]-48;
}
int cur = 0,start = 0;
for(int i = 0;i < len1;i++){
cur = 0;
start = i;
for(int j = 0;j<len2;j++){
ji[start] = a1[i]*a2[j]+ji[start]+cur;
cur=ji[start]/10;
ji[start]%=10;
start++;
}
if(cur){
ji[start]=cur;
}else{
start--;
}
}
while(ji[start] == 0 && start > 0){
start--;
}
for(int i = start;i >= 0;i--){
cout << ji[i];
}
return 0;
}
}
这里空空如也
有帮助,赞一个