给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
输入:num1 = “456”, num2 = “77”
输出:“533”
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
}
func main() {
num1 := "456"
num2 := "77"
strings := addStrings(num1, num2)
fmt.Println(strings)
}