Back to Leetcode Go

258. Add Digits

website/content/ChapterFour/0200~0299/0258.Add-Digits.md

1.7.11.2 KB
Original Source

258. Add Digits

题目

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

Example:

Input: 38
Output: 2 
Explanation: The process is like: 3 + 8 = 11, 1 + 1 = 2. 
             Since 2 has only one digit, return it.

Follow up: Could you do it without any loop/recursion in O(1) runtime?

题目大意

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

解题思路

  • 给定一个非负整数,反复加各个位上的数,直到结果为一位数为止,最后输出这一位数。
  • 简单题。按照题意循环累加即可。

代码

go

package leetcode

func addDigits(num int) int {
	for num > 9 {
		cur := 0
		for num != 0 {
			cur += num % 10
			num /= 10
		}
		num = cur
	}
	return num
}


<div style="display: flex;justify-content: space-between;align-items: center;"> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0200~0299/0257.Binary-Tree-Paths/">⬅️上一页</a></p> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0200~0299/0260.Single-Number-III/">下一页➡️</a></p> </div>