leetcode第258题——各位相加

题目描述:

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

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

解题思路:将数字num转化为字符串,然后各位相加即可。当出现小于10的和时,直接输出和的结果。

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

你可能感兴趣的:(算法学习,算法)