Go-字符串相加

给定两个字符串形式的非负整数 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)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值