258. 各位相加

题目

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

示例 1:

输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。

示例 2:

输入: num = 0
输出: 0

法一、模拟

class Solution:
    def addDigits(self, num: int) -> int:
        while num >= 10:
            digit = list(map(int, str(num)))
            num = 0
            for i in range(len(digit)):
                num += digit[i]
        return num

法二、规律

class Solution:
    def addDigits(self, num: int) -> int:
        if num==0:
            return 0
        if num%9 == 0 :
            return (9)
        else:
            return(num%9)
posted @ 2024-04-03 11:28  Frommoon  阅读(30)  评论(0编辑  收藏  举报