通过python实现猴子吃桃问题_python猴子吃桃问题递归

liftword4个月前 (02-14)技术文章31

1、问题描述:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。求第一天共摘了多少。

2、问题分析:

这一题最初分析时以为用递归的方式进行输出,但是陷入了一个误区,以为第十天剩余的最后一个和第九天没有关联性,所以一直在纠结。想通了以后其实是非常的简单

3、代码实现:

def monkeyEatPeach():
    # 定义一个变量用于存放剩余的桃子,初始值是第十天的1
    rest = 1
    # 定义一个变量用于存放总共的桃子数目
    sum = 0
    # 从第九天到第一天的进行循环输出
    for i in range(9, 0, -1):
        sum = 2 * (rest + 1)
        # 第i天的桃子总数应该是第i-1天吃剩下的桃子总数
        rest = sum
    return sum

print(monkeyEatPeach())

4、代码输出:

1534

5、检查正确性:

 猴子吃桃

吃的

剩下的

第1天

768

766

第2天

384

382

第3天

192

190

第4天

96

94

第5天

48

46

第6天

24

22

第7天

12

10

第8天

6

4

第9天

3

1

第10天

1

0

相关文章

在 Python 中如何将字符串转换为整数

类似于内置的 str() 方法,Python 语言中有一个很好用的 int() 方法,可以将字符串对象作为参数,并返回一个整数。用法示例:# Here age is a string object a...

一文掌握在 Python 中将字符串转换为浮点数或整数

本教程中将介绍如何在 Python 中使用内置float()、int()函数、literal_eval()函数等,将字符串转换为浮点数 float 或整数 int。在 Python 中将字符串转换为浮...

Python如何判断一个数是不是整数?答案没那么简单

在Python里,如果我们想判断一个数是不是整数,应该如何操作呢?使用type方法很多人首先想到的是使用type方法,例如:x = 0 type(x) == int这个方法看上去很简单,但在Pytho...

编写程序随机产生30个1-100之间的随机整数,按5行6列的格式输出

大家好,我是皮皮。一、前言前几天在某乎上看到了一个粉丝提问,编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出?这里拿出来跟大家一起分享下。二、实现过程后...

python:给1个整数,你怎么判断是否等于2的幂次方?

最近在某xxxx网站上刷到一个比较简单题目,题目要求不使用循环和递归来实现检查1个整数是否等于2的幂次方,题目如下:题目的答案如下:def isPowerofTwo(n): z = bin(n)[2...

编程脑洞:如何用一个整数来表示一个列表?

原题 | Storing a list in an int (https://iantayler.com/2020/12/07/storing-a-list-in-an-int)作者 | Comput...