题解 | #大数加法#
大数加法
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(); } }