vector和运算符重载
#include<iostream>
#include<vector>
using namespace std;
//大整数 * 整数
vector<int> operator * (vector<int> a, int b){
vector<int> ans;
long long carry = 0; // 表示进位,防止溢出用长整型
for(int i = 0; i < a.size(); ++i){
carry += a[i] * b;
ans.push_back(carry % 10);
carry /= 10;
}
//进位不止一位
while(carry){
ans.push_back(carry % 10);
carry /= 10;
}
//去除先导零,并且至少保留一位0
for(int i = ans.size() - 1; ans[i] == 0 && i > 0; --i)
ans.pop_back();
return ans;
}
int main(){
vector<int> a = {5,8,7,9,4} , ans;
int b = 8869;
ans = a*b;
for(int i = ans.size() - 1; i >= 0; --i)
cout << ans[i];
return 0;
}