高精度乘法 10.25
#include <iostream>
#include <vector>
using namespace std;
vector<int>m(vector<int> &A,int b){
int t=0;
vector<int> C;
for(int i=0;i<A.size();i++){
t+=A[i]*b;
C.push_back(t%10);
t=t/10;
}
if(t!=0)C.push_back(t);
while(C.size()>1&&C.back()==0)C.pop_back();
return C;
}
int main(){
string a;
int b;
vector<int> A,C;
cin>>a>>b;
for(int i=a.size()-1;i>=0;i--)A.push_back(a[i]-'0');
C=m(A,b);
for(int i=C.size()-1;i>=0;i--)cout<<C[i];
return 0;
}
这题a的那叫一个快啊,本质上是加法和减法的合体,关键在于,这题的b本质上是个低精度的数,所以我们用的方法策略很简单:从个位开始的每一个a对b做乘法再取10的余数放到c里面,接着把t除10,再加上下一轮的a*b,最后去0,以上全体ac
你用Vector做的哈,也可以用数组做(虽然有点烦)