题解 | #大数加法#

大数加法

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

从s和t的末尾开始,一个一个加,考虑进位。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        // write code here

        int i = s.size();
        int j = t.size();
//         int k = i > j ? i : j;

        int jinwei = 0, curSum = 0;
        string str;
        int a = 0, b = 0;
        while(i-- && j-- && i >= 0 && j >= 0)
        {
            a = s[i] - '0';
            b = t[j] - '0';
            curSum = a + b + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        while(j-- && j >= 0)
        {
            b = t[j] - '0';
            curSum = b + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        while(i-- && i >= 0)
        {
            a = s[i] - '0';
            curSum = a + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        if(jinwei)
        {
            str += to_string(jinwei);
        }
        return reverseString(str);
    }
    string reverseString(string s)
    {
        string str;
        for(int i = s.size()-1; i >= 0; i--)
        {
            str += s[i];
        }
        return str;
    }
};
全部评论

相关推荐

CrazyBucket:我今天下午也做梦在招聘会上面试一家小厂,给自己气笑了
点赞 评论 收藏
分享
牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务