python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...
要獲得(正整數(shù))數(shù)字的最后一位數(shù),您可以計算模數(shù):
last_digit = n % 10
該數(shù)字的其余部分(不包括最后一個地方)是:
rest = (n - last_digit) / 10
理論上這應該足以分割數(shù)字并添加數(shù)字:
def sum_digits(n):
if n < 10:
return n
else:
last_digit = n % 10
rest = n // 10
# or using divmod (thanks @warvariuc):
# rest, last_digit = divmod(n, 10)
return last_digit + sum_digits(rest)
sum_digits(1969) # 25
如果你想要遞歸地應用這個值,直到你有一個小于10的值,你只需要調(diào)用這個函數(shù),只要不滿足該條件:
def sum_sum_digit(n):
sum_ = sum_digit(n)
if sum_ < 10:
return sum_
else:
return sum_sum_digit(sum_)
sum_sum_digit(1969) # 7
如果您有興趣另一種計算數(shù)字總和的方法是將數(shù)字轉換為字符串,然后添加字符串的每個字符:
def sum_digit(n):
return sum(map(int, str(n)))
# or as generator expression:
# return sum(int(digit) for digit in str(n))
總結
以上是生活随笔為你收集整理的python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot中获得app_在Sp
- 下一篇: matlab fgoalattain,m