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

liftword3个月前 (02-14)技术文章18

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 中将浮点数转换为整数方法指南

在 Python 中将浮点数转换为整数可能看起来很简单,但有一些重要的细微差别需要理解。让我们探讨所有可用的方法、它们的差异以及何时使用每种方法。基本浮点到整数转换方法Python 提供了多种将浮点数...

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

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

Python初学者练习:计算一个整数的各位数字之和

在这篇文章中,我们将编写一个程序来计算一个整数中各位数字的之和。示例:123:1+2+3=6方法1:使用while循环和整除运算符“//”、取余运算符“%”来计算这个python程序使用while循环...

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

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

Python ‘bufferobject.c’整数溢出漏洞

受影响系统:Python python不受影响系统:Python python ˂ 2.7.8描述:BUGTRAQ ID: 70089Python是一种面向对象、直译式计算机程序设计语言。Python...

python编程:判断一个正整数是奇数还是偶数

#判定一个数为奇数还是偶数#if条件判定number = eval (input("请任意输入一个正整数:")) #eval 执行一个字符串表达式,并且返回一个值if number %2 == 0:...