我正在尝试了解递归如何返回其完成的解决方案。我解决了一个问题(学校作业),但老实说,我不知道它是如何返回解决方案的,而不是基本案例。我一直坚持认为,一旦传递的参数等于基本情况,它将返回传递的值。
下面是我解决的问题,基本上是使用递归将数字中的数字求和。
如果我输入“ 5678”,则返回26,这是正确的。但是我一直坚持认为它将返回0,因为那是传递给函数的最后一个参数(或n的实例),并且因为0%10 ==0。
def main():
int = eval(input("Enter an integer: "))
print("The sum of the digits you entered is: ", sumDigits(int))
def sumDigits(n):
if n % 10 == 0:
return n
else:
return sumDigits(n // 10) + (n % 10)
main()