LeetCode 258. 各位相加 - Python 解法

题目描述:

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

示例:

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

链接:

https://leetcode-cn.com/problems/add-digits

Python 代码:

def addDigits(num):
    while num >= 10:
        sum = 0
        while num > 0:
            sum += num % 10
            num //= 10
        num = sum
    return num

if __name__ == "__main__":
    print(addDigits(38))
    print(addDigits(1))

代码解释:

  1. 函数 addDigits(num) 接收一个非负整数 num 作为参数。
  2. 使用 while 循环,只要 num 大于等于 10,就继续循环。
  3. 在循环内部,使用另一个 while 循环,将 num 的各位数字相加,累加到 sum 变量中。
  4. 更新 num 的值为 sum
  5. 循环结束后,num 会变成一位数,返回 num

示例:

>>> addDigits(38)
2
>>> addDigits(1)
1

总结:

本解法使用了循环来实现各位数字相加的操作,直到结果为一位数为止。代码简洁易懂,效率较高。

LeetCode 258. 各位相加 - Python 解法

原文地址: https://www.cveoy.top/t/topic/paxT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录