一:两数想加(415)
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
示例 1:
输入:num1 = "11", num2 = "123"
输出:"134"
示例 2:
输入:num1 = "456", num2 = "77"
输出:"533"
示例 3:
输入:num1 = "0", num2 = "0"
输出:"0"
func addStrings(num1 string, num2 string) string {
/**
思路分析:
模拟个位加个位,依次加,保留是否进1,使用- '0'把ascii码转成int
**/
//开始
//记录进位
add := 0
res := ""
for i, j := len(num1) - 1 , len(num2) - 1; i >= 0 || j >= 0 || add > 0; i, j = i-1, j-1 {
x, y := 0, 0
if i >= 0 {
//将ascii码转换成int
x = int(num1[i] - '0')
}
if j >= 0 {
//将ascii码转换成int
y = int(num2[j] - '0')
}
//将int转换成字符串int,用string会转换成字母比如97是a
//这里x+y一定要加上 add
res = strconv.Itoa(( x + y + add ) % 10) + res
//求进位
//这里x+y一定要加上 add
add = ( x + y + add ) / 10
}
return res
}