AcWing 793.高精度乘法
题目描述
给定两个正整数A和B,请你计算A * B的值。
输入格式
共两行,第一行包含整数A,第二行包含整数B。
输出格式
共一行,包含A * B的值。
数据范围
1≤A的长度≤100000,
1≤B≤10000
输入样例
2 3
输出样例
6
题目思路
低角标存低位,高角标存高位;依次进位,用A[i]乘整个b
#include<iostream> #include<string> #include<vector> using namespace std; vector<int> mul(vector<int> &A,int &b) { vector<int> C; for(int i=0,t=0;i<A.size()||t;i++) { if(i<A.size()) t += A[i] * b; C.push_back(t%10); t /= 10; } return C; } int main() { string a; int b; cin >> a >> b; vector<int> A,C; for(int i=a.size()-1;i>=0;i--) A.push_back(a[i] - '0'); C = mul(A,b); for(int i=C.size()-1;i>=0;i--) printf("%d",C[i]); return 0; }
来源:https://www.cnblogs.com/fsh001/p/12242588.html