def sumdigits(number):
if number==0:
return 0
if number!=0:
return (number%10) + (number//10)
这是我的功能 . 然而,它只给出2位数字的正确总和 . 我怎样才能得到任何数字的总和 . 我的函数也算作递归
def main():
number=int(input("Enter a number :"))
print(sumdigits(number))
main()
6 回答
不,它不是递归的,因为你没有从函数内部调用函数 .
尝试:
递归是一种编程或编码问题的方法,其中函数在其体内调用自身一次或多次 .
通常,它返回此函数调用的返回值 . 如果函数定义满足递归条件,我们将此函数称为递归函数 .
递归函数必须终止才能在程序中使用 . 通常,它会终止,如果每次递归调用,问题的解决方案都会缩小并移向基本情况 . 基本情况是一种情况,可以在没有进一步递归的情况下解决问题 . (如果在调用中不满足基本情况,则递归可能导致无限循环) . 对于这个问题,“基本案例”是:
用于求和数字的所有数字的简单递归函数是:
如果我们运行代码,我们有:
对于要递归的函数,它必须在自身内部调用自身 . 此外,由于您当前的不这样做,它不是递归的 .
这是一个简单的递归函数,可以执行您想要的操作:
你没有做一个递归步骤(在里面调用
sumdigits()
)!我相信这就是你要找的东西:
虽然递归是一种聪明的方法,但由于性能和逻辑原因,我通常会远离它(它可能很快变得复杂) . 我知道这不是你要找的答案,但我个人坚持这样或类似的循环:
祝好运!