小时候经常会自己玩一个数学游戏,就是遇到一个长度大于2的数字,把它的所有位数相加,直到加到变成1位。没想到,今天竟然在leetcode遇到了。。汗,之前只是玩了,并没有总结规律。
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
. Since2
has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
class Solution:
def addDigits(self, num):
"""
:type num: int
:rtype: int
"""
if num==0:
return 0
if num%9==0:
return 9
return num%9
当我看到这个答案的时候,觉得有点道理。。以后再补充按位数相加得出结果的方案。