高精度乘法

54 阅读1分钟
#include <iostream>  
#include <vector>  
using namespace std;  
//高精度乘法  
vector<int> mul(vector<int> A,int b){  
vector<int> C;  
int t;  
for(int i = 0,t = 0; i<A.size() || t;i++){  
//把一个数看作整体,一位一位的去乘另一个数
if(i < A.size()) t = A[i] * b + t;  
  
C.push_back(t % 10);  
t = t / 10;  
}  
//去掉前导0
while (C.size() > 1 && C.back() == 0) C.pop_back();  
  
return C;  
}  
int main() {  
string x;  
int y;  
cin >> x >> y;  
vector<int> A;  
for(int i = x.size() - 1;i >= 0;i--) A.push_back(x[i] - '0');  
vector<int> C = mul(A,y);  
for(int i = C.size()-1;i >=0;i--) cout << C[i];  
}