猴子吃桃问题
今天有同学去面试,问到的是一个猴子吃桃问题。具体问题为:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?
解析:①
从最后一天的x=1个,倒推出前一天的个数x,需要注意的是表达式为x=2(x+1),而不是x=2x+1,注意两者之间的区别,想清楚为什么第二种不正确。
&&&&&&②
将该表达式作为循环9次的循环体,并在该语句处设置断点,进行观察即可。
具体程序为:
#include&stdio.h&
int main()
for(i=0;i&9;i++)
x = 2*(x+1);
printf("%d\n",x);
程序运行结果为:1534.
附例:猴子分桃问题:
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
具体程序为:
#include&stdio.h&
int divided(int n, int m) //注意该递归函数的定义{
if(n/5==0 || n%5!=1)return 0;
if(m==1) return 1;
return divided(n-n/5-1, m-1);
int main(int argc, char *argv[])
& int m = 5;
& for(n = 1; ; n++)
if(divided(n,m))
{printf("%d\n", n);
程序运行结果为:3121
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。奥数题.求各位能人帮忙解答.小明四天看完了一本书,其中一二天共看了四十页,二三四天共看了七十五页已知第二天看了全书的二十分之三.第一天看了多少页?四只小猴吃桃,第一只吃另外三只吃的总数的三分之一,第二只吃另外三只吃的四分之一,第三只吃另外三只吃的五分之一,第四只吃46个.共有多少个桃?三人加工一批零件,甲比乙多加工二十个,丙加工的是乙的五分之四甲加工的个数是乙丙两人的六分之五.三人各加工多少个?用一根长66厘米的铁丝围成一个长方形,长的五分之四等于宽的三分之二.面积是多少一人乘车旅行,到三分之一他睡着了醒来时发现剩下的路程只有睡着时的三分之一。睡着时走了全程的多少?
一、40+75=115,比全书的页数多了第二天读的页数,将全书页数看成整体1,这个数即为:1+3/20=23/20所以全书页数:115/(23/20)=100(页)第二天:100×(3/20)=15(页)第一天:40-100×(3/20)=25(页)二、第一只吃另外三只吃的总数的三分之一,吃了总数的:1/(1+3)=1/4,第二只吃另外三只吃的四分之一,吃了总数的:1/(1+4)=1/5第三只吃另外三只吃的五分之一,吃了总数的:1/(1+5)=1/6第四只吃了总数的:1-1/4-1/5-1/6=46/120已知第四只吃了46个,由部分求整体,所以总数:46/(46/120)=120(个)三、将丙加工的看成4份,乙加工的看成5份,甲加工的即:(4+5)×(5/6)=7.5(份)所以每份:20/(7.5-5)=8(个)甲:8×7.5=60(个)乙:8×5=40(个)丙:8×4=32(个)〔先答这么多,太多又会“被违规”,下面的追问再答〕
四、如图,一边看成5份,一边看成6份,每份:(66/2)÷(5+6)=3(厘米)面积:(3×5)×(3×6)=270(平方厘米)五、最后剩下的路程是后2/3的:1/(1+3)=1/4即为全程的:(2/3)×(1/4)=1/6所以睡着的路程是全程的:1-1/3-1/6=1/2
为您推荐:
其他类似问题
1、40+75/(1+3/20)2、1/11/3=33*1/3=13+1=41/4=1/42、3猴子也是这样算,分别是1/5、1/6。1/+1/5+1/6=23/6046/23/60=120个3、5/6*(1+4/5)=3/23/2-1=1/220/1/2=40个40+20=60个