题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

package main

import (
	"strconv"
)

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 计算两个数之和
 * @param s string字符串 表示第一个整数
 * @param t string字符串 表示第二个整数
 * @return string字符串
 */
func solve(s string, t string) string {
	// write code here
	var result string

	// 如果s比t短,交换s和t
	if len(s) < len(t) {
		temp := s
		s = t
		t = temp
	}

	// 进位
	j := 0
	//   倒叙遍历s
	for i := len(s) - 1; i >= 0; i-- {
		digitS := int(s[i] - '0')
		digitT := 0

		//向右对其字符串,避免较短字符越界
		if i-len(s)+len(t) >= 0 {
			digitT = int(t[i-len(s)+len(t)] - '0')
		}

		sum := digitT + j + digitS

		if sum >= 10 {
			j = 1
			sum -= 10
		} else {
			j = 0
		}
		result = strconv.Itoa(sum) + result
	}

	if j > 0 {
		result = strconv.Itoa(j) + result
	}

	return result

}

#大数加法#
全部评论

相关推荐

怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务