题目描述:
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
解题思路:
观察:
最终答案肯定为0-9
只有0才能得到0,其他数字只要有数就永远不会加出0,那么其他数字只能对应1-9
函数满足 f(a + 1) = f(a) + 1 (这里结果的10看作1)
结果只能是1-9的无限循环
9个一循环,也就是f(a + 9) = f(a),那么我们抛去加的多余的9,结果一致,即f(a) = f(a % 9) (这里结果的f(0)看作9)
代码演示:
class Solution:
def addDigits(self, num: int) -> int:
return (num - 1)%9 +1 if num else num