遞歸是編程或編碼的問題,其中一個函數調用自身在它的身上一次或多次的方式。
通常,它返回此函數調用的返回值。如果函數定義滿足遞歸條件,我們稱這個函數爲遞歸函數。
遞歸函數必須終止才能在程序中使用。 通常,它會終止,如果每次遞歸調用,問題的解決方案都會縮小並向基本情況移動。 基本情況是一種情況,可以在沒有進一步遞歸的情況下解決問題。 (如果調用中沒有滿足基本情況,則遞歸可能導致無限循環)。 對於這個問題,「基本情況」是:
if number == 0:
return 0
的總和號碼的所有數字的簡單的遞歸函數爲:
def sum_digits(number):
""" Return the sum of digits of a number.
number: non-negative integer
"""
# Base Case
if number == 0:
return 0
else:
# Mod (%) by 10 gives you the rightmost digit (227 % 10 == 7),
# while doing integer division by 10 removes the rightmost
# digit (227 // 10 is 22)
return (number % 10) + sumdigits(number // 10)
如果我們運行的代碼,我們有:
>>>print sum_digits(57) # (5 + 7) = 12
12
>>>print sum_digits(5728) # (5 + 7 + 2 + 8) = 22
22
return(number%10)+ sum_digits(number // 10)#Typo – Kris1511