为了账号安全,请及时绑定邮箱和手机立即绑定

python 递归问题

python 递归问题

chhhhha 2015-10-20 11:20:12
def a(n): if n==1:  print('asd')  return 10 else:  print(n)  return n*a(n-1) 上面的return 10 为什么要写成 return 1  呢 就是为什么到最后的返回结果还要*10呢上面的
查看完整描述

1 回答

已采纳
?
子木李

TA贡献46条经验 获得超27个赞

递归是这样的,比如说,需要算一个10!,那么,传入一个n=10,那么,首先,执行返回的是 10*a(9),然后a(9)继续执行,返回 9*a(8),......就这样一直执行,返回 2*a(1),因为n=1时就是递归的终止条件了,所以,a(1)返回了1,这里就是为什么 return 1了,然后就得到了 10!的值了,至于楼主所说的返回的结果*10,应该是具体语境的原因吧,比如,可能需要我计算的不是 n!阶乘,二十 n*n!,那么,当n=10时,最后的返回结果就需要乘以10了,也就是说,递归的那部分是计算n!的,至于最后返回的结果如何处理,那就看具体的语境了

查看完整回答
1 反对 回复 2015-10-20
  • 1 回答
  • 0 关注
  • 1659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信