高精度模拟大数相加(简洁版本)

class Solution {
public:
    string addStrings(string num1, string num2) {
        //高精度模拟
        int carry=0;
        int i=num1.length()-1;
        int j=num2.length()-1;
        string fins="";
        while(i>=0||j>=0||carry!=0)     //没有遍历完或者便利完了进位不为零 就不停止
        {
            int x=i>=0?num1[i]-'0':0;
            int y=j>=0?num2[j]-'0':0;
            int now=x+y+carry;
            fins.push_back('0'+now%10);
            carry=now/10;
            i-=1;
            j-=1;
        }
        reverse(fins.begin(),fins.end());       //翻转
        return fins;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52245648/article/details/121181962