Problem N: 猴子吃桃】的更多相关文章

#include<stdio.h> int main() { int n,s,i; while(scanf("%d",&n)!=EOF){ s=; ;i>=;i--) { s=*(s+); } printf("%d",s);} ; }…
http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半另加一个.到第n天早上想再吃时,就只剩下一个桃子了.求第1天共摘了多少个桃子 输入 n的值 输出 剩下的桃子数量 样例输入 10 样例输出 total=1534 题解:运用递归的思想,定义的A的函数代表的是第n天开始的时候所有…
猴子第一天摘了许多个桃子,先吃了所有桃子的一半,后又吃了一个:第二天又吃了剩下桃子的一半,后又吃了一个……第十天,剩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…
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想再吃时,发现只剩下一个桃子了.编写程序求猴子第一天摘了多少个桃子. #include <stdio.h> int main() { int sum,d1,d2; sum=; d2=; ) { d1=(d2+)*; /*第一天的桃子数是第二天桃子数加1的2倍*/ d2=d1; sum--; } print…
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少.分析:采取逆向思维的方法,从后往前推断.假设:第九天还有x个桃,第十天就还有(x/2)-1个桃:若设第十天还有m个桃,则满足等式(x/2)-1=m反推第九天还有(m+1)*2个桃 public class Prog17 { public static void m…
//题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个//第二天早上又将剩下的桃子吃掉一半,又多吃了一个//以后每天早上都吃了前一天剩下 的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.//求第一天共摘了多少.//n,n/2,n/2-1,...,1 public class Test { public static void main(String[] args) { System.out.println(total(1)); System.out.pri…
猴子吃桃问题:猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个.第二天又将剩下的桃子吃掉一半,又多吃了一个.以后每天都吃前一天剩下的一半零一个.到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子? 分析:假如每天有x个桃子,猴子吃了一半加一个,就是吃了x/2+1个,那么剩余x-(x/2+1)=x/2-1个:这样,第二天有x/2-1个桃子供当天使用.我们可以看出这么一个规律:今天的桃子个数+1再乘2等于昨天的桃子个数:用上面的表达式就是( x/2-1  …
17 [程序 17 猴子吃桃问题] 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又 将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想 再吃时,见只剩下一个桃子了.求第一天共摘了多少. 程序分析:采取逆向思维的方法,从后往前推断. package cskaoyan; public class cskaoyan17 { @org.junit.Test public void peach() { int…
原题: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析: 两种解答方式:第一种,顺推,第二种,倒推 我的源码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 猴子吃桃问题: # 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一…
1. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. Method 1: 递归解决 public static int peach(int day){ ; ){ x=; }else{ x=*(peach(day-)+); /* (昨天-1)的桃子=((今天-1)的桃子+1)*2s 大昨天的桃子=(昨天的桃子+1)*…
猴子吃桃问题之<C语言经典案例分析>一.[什么是猴子吃桃]       猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想再吃时,发现只剩下一个桃子了.编写程序求猴子第一天摘了多少个桃子. 二.[算法实现过程](1) 定义 day.x1.x2 为基本整型,并为 day 和 x2 赋初值 9 和 1:(2) 使用 while 语句由后向前推出第一天摘的桃…
[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. -------------------------------------------------- 这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 -…
//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. //第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个. //到第 10 天早上想再吃时,发现只剩下一个桃子了.编写程序求猴子第一天摘了多少个桃子. /* 分析:从第10天向第9.8.7.6.....1推算,x为当前桃子数量,当a=10时,x=1:当a=9时 2*(x+1)=4 当a=8时,2*(x+1)=2*5=10 */ #include <stdio.h> in…
要求说明: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少.要求分别用for循环和while循环实现程序. 实现思路: 程序分析:采取逆向思维的方法,从后往前推断. 天  数      1   2    3    4   5    ...10 桃子数     1    4   10   22   46         …
day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析:反向推断,第一天摘1个桃子,第二天会摘(1+1)x2个桃子....第9天会摘xxx个桃子?代码如…
猴子第一天摘了许多个桃子,先吃了所有桃子的一半,后又吃了一个:第二天又吃了剩下桃子的一半,后又吃了一个……第十天,剩1个桃子.问:猴子第一天摘了多少个桃子? 本程序对其做了修改,天数和吃一半后又吃了一个变为了活的. Default2.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2&q…
原题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每一天早上都吃前一天剩下桃子的一半零一个.到第十天早上想再吃时,发现 只剩下一个桃子了.编写程序,求第一天共摘了多少个桃子? 分析思路: 首先要找出第一天的桃子和第二天的桃子数之间的关系,即第一天的桃子数是第二天桃子数加1的两倍. 接下来写代码: #include <stdio.h> int main(void) { int day = 9 ; int n1 , n2 =…
//============================================================================ // Name : Monkey&Peach.cpp // Author : dun // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================…
题目内容: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 输入格式: 共一行,为一个大于1小于11的正整数. 输出格式: 共一行,为一个正整数 输入样例: 2 输出样例: 4 时间限制:500ms内存限制:32000kb a = int(input()) def fun(number): if numb…
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少?提示:采取逆向思维的方法,从后往前推断.该题目不需要创建函数 n = 1 for i in range(9,0,-1): print('第%i天剩下的%i个桃子'%(i,(n+1)*2)) n = (n+1)*2 运行结果: 第9天剩下的4个桃子第8天剩下的10个桃子第7天剩下的22…
<?php header("content-type:text/html;charset=utf-8"); /* 有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个! 以后每天猴子都吃其中的一半,然后再多吃一个. 当到第十天时,想再吃时(即还没吃),发现只有1个桃子了. 问题:最初共多少个桃子?*/ function ct($n){ if($n==1){ //一天吃完 return 1; }else{ return 2*(ct($n-1)+1);//n天吃的时候剩一个 } }…
问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个.第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个.以后每天都吃前一天剩下的一半再加一个.到第10天刚好剩一个.问猴子第一天摘了多少个桃子? 分析: 这是一套非常经典的算法题,这个题目体现了算法思想中的递推思想,递归有两种形式,顺推和逆推,针对递推,只要 我们找到递推公式,问题就迎刃而解了. 令S10=1,容易看出 S9=2(S10+1), 简化一下 S9=2S10+2 S8=2S9+2 ..... Sn=2Sn+1+2…
题目: 猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个: 第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个:以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了.问第一天共吃了多少个桃子? 思路:我们可以采用逆向思维,第十天剩一个,前一天则为 S9 = (S10 +1)*2,以此推算前一天.可以采用递归 Day10--------------------------1 Day9-------------------------- 4 Day8--------…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAIMCAIAAACIcqa9AAAgAElEQVR4nO3dO3Li3BaG4TMJcgbi1A…
1.某侦察队接到一项紧急任务,要求在A.B.C.D.E.F六个队员中尽可能多地挑若干人,但有以下限制条件:侦察兵A和B两人中至少去一人: a+b>=1(由于每个队员有两种状态:去与不去,假设不去为0,去为1:把每个条件用等式表示出来,用for循环让每个条件都满足)A和D不能一起去: a+d<=1A.E和F三人中要派两人去: a+e+f == 2B和C都去或都不去: b+c !=1C和D两人中去一个: c+d==1若D不去,则E也不去. d+e==0 || d=1问应当让哪几个人去? ; a &…
这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 - 1 = 1,可得 p = 4.以此类推,即可手算出. 代码思路为:第10天还没吃之前的桃子数量初始化 p = 1,之后从9至1循环9次,根据上述公式反推为 p = (p+1) * 2 可得第1天还没吃之前的桃子数量.#方法一p = 1print('第10天吃之前就剩1个桃子')for i in range(1, 10): p = (p+1) * 2 print('…
例题1:公园里有200个桃子,猴子每天吃掉一半以后扔掉一个,问6天以后还剩余多少桃子? var sum = 200; for(var i= 0;i<6;i++) { sum = parseInt(sum/2)-1 } alert(sum); 例题2:公园里有一些桃子,猴子每天吃掉一半以后扔掉一个,第6天的时候发现还剩下1个桃子,问开始有几个桃子? var sum = 1; for(var i = 0;i<6;i++) { sum = (sum+1)*2; } alert(sum); 使用函数解…
PTA 7-35 猴子吃桃问题 #include<stdio.h> int main() { ; scanf("%d",&n); ; i<n; i++) { s = (s+)*; } printf("%d",s); }…