高精乘法求调
  • 板块学术版
  • 楼主hzx895
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/15 17:29
  • 上次更新2023/11/15 19:30:39
查看原帖
高精乘法求调
439834
hzx895楼主2023/11/15 17:29
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。

2023/11/15 17:29
加载中...