猴子爱吃桃子,但有一天它只剩下一堆桃子了,于是它开始吃,每次吃掉一半再多吃一个,直到最后一只桃子被吃完,这个过程可以用递归来实现。
def eatPeach(n):
if n == 1:
return 1
else:
return (eatPeach(n-1) + 1) * 2
上述代码中,参数n代表剩余的桃子数量,第一行if n==1是递归的出口,也就是只剩下一只桃子时停止递归,返回1;否则就进入else语句中,实现递归。每次递归都是吃掉一半再多吃一个,因此桃子数减半再加1。最终返回所有桃子吃完时的总数。
如果我们有100个桃子,那么调用eatPeach(100)即可得到解:
print(eatPeach(100)) # 1267650600228229401496703205375
结果是一个很长的整数,代表在这个过程中一共吃了多少个桃子。当桃子数量很大时,递归次数也会很多,所以在实现时要注意效率问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。