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)
要使函数递归,它必须在自身内部调用自己。此外,由于当前的一个没有这样做,所以它不是递归的。
下面是一个简单的递归函数,可以满足您的需要:
递归是对问题进行编程或编码的一种方法,在这种方法中,函数在其主体中调用自己一次或多次。
通常,它返回这个函数调用的返回值。如果函数定义满足递归条件,我们将此函数称为递归函数。
递归函数必须终止才能在程序中使用。 通常,如果每次递归调用问题的解决方案都被缩小并移向基本情况,那么它就会终止。 基本情况是这样一种情况,在这种情况下,不需要进一步递归就可以解决问题。(如果调用中没有满足基本情况,递归可以导致无限循环)。 对于这个问题,“基本情况”是:
一个简单的递归函数,用于对数字的所有位数求和,它是:
如果我们运行代码:
不,它不是递归的,因为您没有从函数内部调用函数。
尝试:
相关问题 更多 >
编程相关推荐