#include<iostream> #include<vector> using namespace std; vector<int> mul(vector<int> &A,int b) { vector<int> C; int t=0; for(int i=0;i<A.size()||t;i++)//注意加上 ||t!!! { if(i<A.size()) t+=A[i]*b;//注意这里是A[i]*b b需要每次都进行乘法 C.push_back(t%10); t/=10; } while(C.size()>1&&C.back()==0) C.pop_back();//如果一个数乘0那么他就会有很多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--) printf("%d",C[i]); return 0; }
// C = A * b, A >= 0, b > 0 vector<int> mul(vector<int> &A, int b) { vector<int> C; int t = 0; for (int i = 0; i < A.size() || t; i ++ ) { if (i < A.size()) t += A[i] * b; C.push_back(t % 10); t /= 10; } while (C.size() > 1 && C.back() == 0) C.pop_back(); return C; }