题解 | #大数加法#

大数加法

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public string solve (string s, string t){
        //保证s最长
        if(t.Length > s.Length){
            string mid = s;
            s = t;
            t = mid;
        }
        int pre = 0;
        int cur = 0;
        int i = 0;
        StringBuilder sb = new StringBuilder(s);
        for(; i < t.Length; i++){
            cur = s[s.Length - 1 - i] - '0' + (int)t[t.Length - 1 - i] -'0' + pre;
            sb[s.Length - 1 - i] = (char)('0' + cur % 10);
            pre = cur / 10;
        }
        while(pre == 1){
            if(i == s.Length){
                sb.Insert(0, '1');
                break;
            }
            cur = s[s.Length - 1 - i] - '0' + 1;
            sb[s.Length - 1 - i] =  (char)('0' + cur % 10);
            pre = cur / 10;
            i++;
        }
        return sb.ToString();
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务