题解 | #大数加法#好久不见高精了

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

好久不见高精度相关的题目了

#include <iterator>
#include <string>
#include<cctype>
class Solution {
public:
    
    // 高精
    // 此题没有涉及到正负号的问题
    string solve(string s, string t) {
        string res = "";
        int n = s.size();
        int m = t.size();

        // 反转
        reverse(s.begin(), s.end());
        reverse(t.begin(), t.end());
        int i = 0, j = 0;
        int flag = 0; // 标记是否进位
        int r = 0;
        int ds = 0, dt = 0;
        while(i < n || j < m){
            ds = i == n ? 0 : s[i] - '0';
            dt = j == m ? 0 : t[i] - '0';
            r = ds + dt + flag;
            res += (r % 10 + '0');
            flag = r / 10;
            
            i = i == n ? n : i + 1;
            j = j == m ? m : j + 1;
        }

        if(flag){
            res += '1';
        }
        reverse(res.begin(), res.end());
        return res;
    }


};

全部评论

相关推荐

zhiyog:我见过有的国央企需要填高考总分,但是这么详细的第一次见,无敌了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务