AcWing 793. 双高精度乘法
原题链接
简单
作者:
rage
,
2024-11-03 00:57:04
,
所有人可见
,
阅读 1
C++ 代码 纯仿照人类
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int> multiple(vector<int> a,vector<int>b){
vector<int> r;
r.resize(a.size()+b.size());
int i,j,jw;
for(j=0;j<b.size();j++){
for(i=0,jw=0;i<a.size();i++){
int s=b[j]*a[i]+jw+r[i+j];
int bw=s%10;
jw=s/10;
r[i+j]=bw;
}
r[i+j]=jw;
}
while(r.size()>1 && r.back()==0) r.pop_back();
return r;
}
int main(){
string a,b;
cin>>a>>b;
vector<int> va,vb,vr;
for(int i=a.length()-1;i>=0;i--) va.push_back(a[i]-'0');
for(int i=b.length()-1;i>=0;i--) vb.push_back(b[i]-'0');
vr=multiple(va,vb);
for(int i=vr.size()-1;i>=0;i--) printf("%d",vr[i]);
return 0;
}