题解 | #大数加法#

大数加法

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

大树加法C++实现
利用栈的特性来解决(string也可以,但是string 的insert效率不高)
从两个数的尾部一个一个处理,知道两个数字都被处理完成。
坑点:处理完所有数字只有需要判断是否依旧存在进位,有进位则首部加1

class Solution {
public:
    string solve(string s, string t) {
        int tt=t.size()-1,ss=s.size()-1;
        stack<char> sta;
        int step=0;
        string ans;
        while(tt>=0||ss>=0)
        {
            int temp=0;
            if(ss>=0) temp+=s[ss--]-'0';
            if(tt>=0) temp+=t[tt--]-'0';
            temp+=step;
            if(temp>9)          //进位
                step=1;
            else
                step=0;
            temp%=10;
            sta.push(temp+'0');
        }
        if(step==1)    //处理完所有数字要考虑一下是否依旧存在进位   例如99+1
            sta.push(step+'0');
        while(!sta.empty())
        {
            ans+=sta.top();
            sta.pop();
        }
        return ans;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务