string multiply(string a,string b){
string result;
int carry=0;
int i=a.length()-1;
int j=b.length()-1;
while(i>=0||j>=0||carry!=0){
int digit1= i>=0 ? a[i]-'0':0;
int digit2= j>=0 ? b[j]-'0':0;
int sum=digit1*digit2+carry;
carry=sum/10;
sum=sum%10;
result.push_back(sum+'0');
i--;
j--;
}
reverse(result.begin(),result.end());
size_t pos=result.find_first_not_of('0');
if(pos!=string::npos) return result.substr(pos);
//while(!result.empty()&&result[0]=='0') result.erase(result.begin());
return "0";
}
求助dalao,为什么这个高精乘法没有办法输出正确的结果?当输入值为10,10时,输出是10,输入值为101,110时,输出是100。