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