【算法分析】
本代码是“高精度×低精度”。当低精度数 b 为 0 时,要用 if(b==0) return “0”; 做一个特判。注意,其返回的是一个字符串 “0”。
【算法代码】
#include <bits/stdc++.h>
using namespace std;
string hiMul(string a,int b) {
if(b==0) return "0";
string res;
int i=a.size()-1;
int t=0;
while(i>=0 || t>0) {
if(i>=0) t+=(a[i]-'0')*b;
res+=(t%10)+'0';
t/=10;
i--;
}
reverse(res.begin(), res.end());
return res;
}
int main () {
string a;
int b;
cin>>a>>b;
cout<<hiMul(a,b)<<endl;
return 0;
}
/*
in:
2 3
out:
6
*/