NOTE
大数加法
字符串形式的大数加法,从右往左相加并记录进位。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。 (字符串长度不大于100000,保证字符串仅由’0’~’9’这10种字符组成)
2. 思路
- 思路一
- 类似两数相加.md,从右往左,相加后对10取余记录进位
3. 实现
- go
func addStrings(num1 string, num2 string) string {
i := len(num1)-1
j := len(num2)-1
jinwei := 0
var res string
for i >= 0 || j >= 0 || jinwei > 0 {
sum := 0
if i >= 0 {
sum += int(num1[i])-'0'
i--
}
if j >= 0 {
sum += int(num2[j])-'0'
j--
}
sum += jinwei
yushu := sum % 10
jinwei = sum / 10
res = fmt.Sprintf("%v%v", yushu, res)
}
return res
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看