j
jaryue
V1
2023/03/19阅读:13主题:默认主题
leecode 258各位相加(go实现)
leecode
题目描述
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
解题思路
法1 取余递归法:
先通过取余算法将num的各位数求和
//各位求和
i := 0
for num > 0 {
i = i + (num % 10)
num = num / 10
}
,如果和数大于9,就继续递归调用函数,传入参数为求和值...
//判断递归
if i > 9 {
num = addDigits(i)
} else {
return i
}
return num
代码示例
// 取余递归法
func addDigits(num int) int {
i := 0
for num > 0 {
i = i + (num % 10)
num = num / 10
}
if i > 9 {
num = addDigits(i)
} else {
return i
}
return num
}
执行结果
执行结果: 通过 显示详情 查看示例代码 添加备注
执行用时: 0 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗: 1.9 MB , 在所有 Go 提交中击败了 84.11% 的用户 通过测试用例: 1101 / 1101
作者介绍
j
jaryue
V1