Python练习题 016:猴子吃桃】的更多相关文章

问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个.第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个.以后每天都吃前一天剩下的一半再加一个.到第10天刚好剩一个.问猴子第一天摘了多少个桃子? 分析: 这是一套非常经典的算法题,这个题目体现了算法思想中的递推思想,递归有两种形式,顺推和逆推,针对递推,只要 我们找到递推公式,问题就迎刃而解了. 令S10=1,容易看出 S9=2(S10+1), 简化一下 S9=2S10+2 S8=2S9+2 ..... Sn=2Sn+1+2…
[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. -------------------------------------------------- 这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 -…
day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析:反向推断,第一天摘1个桃子,第二天会摘(1+1)x2个桃子....第9天会摘xxx个桃子?代码如…
原题: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析: 两种解答方式:第一种,顺推,第二种,倒推 我的源码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 猴子吃桃问题: # 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一…
17 [程序 17 猴子吃桃问题] 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又 将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想 再吃时,见只剩下一个桃子了.求第一天共摘了多少. 程序分析:采取逆向思维的方法,从后往前推断. package cskaoyan; public class cskaoyan17 { @org.junit.Test public void peach() { int…
猴子第一天摘了许多个桃子,先吃了所有桃子的一半,后又吃了一个:第二天又吃了剩下桃子的一半,后又吃了一个……第十天,剩1个桃子.问:猴子第一天摘了多少个桃子? 首先对“猴子吃桃”的过程进行正向推导,设:猴子第一天摘了N个桃子,第n天剩Ln个桃子.则—— L1 = N/2 - 1 L2 = L1/2 - 1/2 - 1 L3 = L2/2 - 1/2^2 - 1 ...... Ln = L(n-1)/2 - 1: 然后对“猴子吐桃”的过程进行逆向推导,因为Ln = L(n-1)/2 - 1,所以L(…
猴子吃桃问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:0 描述 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29) 输入 第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天): 输出 每一行数据是桃子的总个数 样例输入 2 3 11 样例输出 22 6142 我的程序: #include<stdio.h>…
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.要求输入n(1<=n<=10),输出第n天有多少个桃子: package yan04; import java.util.Scanner; public class EatPeach1 { static int SumPeach(int day) { if(day==1) return…
http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半另加一个.到第n天早上想再吃时,就只剩下一个桃子了.求第1天共摘了多少个桃子 输入 n的值 输出 剩下的桃子数量 样例输入 10 样例输出 total=1534 题解:运用递归的思想,定义的A的函数代表的是第n天开始的时候所有…
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想再吃时,发现只剩下一个桃子了.编写程序求猴子第一天摘了多少个桃子. #include <stdio.h> int main() { int sum,d1,d2; sum=; d2=; ) { d1=(d2+)*; /*第一天的桃子数是第二天桃子数加1的2倍*/ d2=d1; sum--; } print…