1.问题描述:
给出一个非负整数 num
,反复的将所有位上的数字相加,直到得到一个一位的整数。
2.样例:
给出 num
= 38。
相加的过程如下:3 + 8 = 11
,1 + 1 = 2
。因为 2
只剩下一个数字,所以返回 2
。
3.代码:
class Solution:
"""
@param: num: a non-negative integer
@return: one digit
"""
def addDigits(self, num):
# write your code here
if num<10:
return num
sum=0
while num>=10:
a=num//10
sum+=a
num=num-10*a
sum+=num
if sum>=10:
sum=self.addDigits(sum)
return sum
本题需要注意:
1)python中 使用‘//’ 取得两数相除的商
2)在完成一次操作之后,对sum再进行判断,如果不满足终止条件,则继续进行迭代。