def fun(a):
if a==1:
return 1
return a+fuc(a-1)
在上述函数中在尾部返回值中引入了表达式,这可能会导致调用栈溢出的情况,使用尾递归优化。即使用一个函数代替这个运算,在末尾return处不使用表达式
def fun1(a):
return fun2(a,1)
def fun2(a,end_num):
if a==end_num:
return end_num
return fun2(a-1,end_num)