高精度乘法模板(大*小)

高精度乘法模板(大*小)

#include <bits/stdc++.h>

using namespace std;

vector<int> mul(vector<int> &A, int b){
	vector<int> C;
	
	int t = 0;  //进位t,别忘记初始化 
	for(int i = 0; i < A.size(); i++){
		t += A[i] * b;  	  //t + A[i] * b = 7218;
		C.push_back(t % 10);  //只取个位8 
		t /= 10;			  //721看作 进位 
	}
	
	while(t){				  //处理最后剩余的t 
		C.push_back(t % 10);
		t /= 10;
	}
	
	while(C.size() > 1 && C.back() == 0) C.pop_back();  //去除前导0 
	
	return C;
}


int main(){
	string a;
	int b;
	cin >> a >> b;
	
	vector<int> A;
	for(int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0');
	
	vector<int> C = mul(A, b);
	
	for(int i = C.size() - 1; i >= 0; i--) cout << C[i];
	
	return 0;
}

posted @ 2022-11-29 10:15  csai_H  阅读(41)  评论(0)    收藏  举报