AcWing 793. 《算法基础课》模板题--高精度乘法A*b
原题链接
简单
作者:
藕丝泥霸
,
2023-11-25 18:30:21
,
所有人可见
,
阅读 57
思路
- 每一位的计算:t=A[i]*b+t
- 每位结果:t%10,每位进位:t/10
- A[i]算完后,要继续处理进位
c++
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
vector<int> A;
int b;
vector<int> mult(vector<int>& A,int b){
vector<int> res;
int t=0;
for(int i=0;i<A.size();i++){
t=A[i]*b+t;
res.push_back(t%10);
t=t/10;
}
while(t){
res.push_back(t%10);
t=t/10;
}
while(res.size()>1 && res.back()==0) res.pop_back();
return res;
}
int main(){
string s;
cin>>s;
for(int i=s.length()-1;i>=0;i--) A.push_back(s[i]-'0');
cin>>b;
auto C=mult(A,b);
for(int i=C.size()-1;i>=0;i--) printf("%d",C[i]);
printf("\n");
return 0;
}