10只猴子分一堆桃子
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 05:23:47 小学作文
篇一:猴子吃桃子问题 数据结构课程设计
目 录
1、需求分析 .............................................. 1
2、概要设计 .............................................. 1
2.1.用数组数据结构实现上述求解 ......................... 1
2.2.用链数据结构实现上述求解 ........................... 1
2.3 用栈数据结构实现求解 ............................... 1
2.4 用递归实现上述求解 ................................. 2
3、 运行环境 ............................................. 2
3.1 硬件环境 ........................................... 2
3.2软件环境 ........................................... 2
4、 详细设计 ............................................. 2
4.1系统流程图 ......................................... 2
4.2用数组数据结构实现上述求解 ......................... 3
4.3用链数据结构实现上述求解 ........................... 4
4.4用栈数据结构实现求解 ............................... 5
4.5用递归实现上述求解 ................................. 6
5、 调试分析 ............................................. 7
6、运行结果 .............................................. 7
课程设计总结 ............................................. 8
参考文献 ................................................. 9
附录: ................................................... 9
1、需求分析
1、猴子吃桃子问题
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求:
1) 采用数组数据结构实现上述求解
2) 采用链数据结构实现上述求解
3) 采用栈实现上述求解
4) 采用递归实现上述求解
2、概要设计
2.1.用数组数据结构实现上述求解
在taozi函数中定义一个一维数组,分别存储每天的桃子个数,根据题目的内容找出各个数之间的关系,用数组元素表示出来,根据用户输入要计算哪一天的桃子,用for循环控制结束。在main函数中让用户输入要计算的哪一天,调用taozi函数,以便用户可查出任意一天的桃子个数,用switch语句判断用户要执行的功能,然后用while循环控制,直到用户输入0为止。
2.2.用链数据结构实现上述求解
先写出预定义常量和类型,写出结点的类型定义,创建结点,初始化链表,定义变量并初始化,找出结点与其后继结点之间的联系,然后在主函数中控制。
2.3 用栈数据结构实现求解
本部分包括预定义常量和类型,顺序栈的定义,InitStack函数,Push函数,和main函数,在InitStack函数构造一个空栈,在Push函数中调用该函数,并在其中编写控制栈顶指针和栈底指针移动的语句,找出指针所指向的数据之间的关系,在main函数中编写控制循环结束的语句,最后再用main函数去调用Push函数。
2.4 用递归实现上述求解
这种方法跟上述几种不同,在函数的执行函数的过程中,需多次进行自我调用,递归函数的运行过程类似与多个函数的嵌套调用,只是调用函数和被调用函数是同一个函数,从主函数开始调用,一次更深一层,退出时一步一步返回到上一层,所以不需写控制循环语句,不需要写控制循环语句,比上几种方法简单点。
3、 运行环境
3.1 硬件环境
PC
3.2软件环境
(1)Windows XP
(2)Microsoft Visual C++6.0
4、 详细设计
4.1系统流程图
4.2用数组数据结构实现上述求解
//计算桃子的个数
void taozi(int n,int m)
{
int day[10];//初始化变量,用数组元素分别存储每天的桃子个数
int i;//控制循环执行的次数
day[0]=n;//最后一天的桃子个数
for(i=0;i<10-m;i++)
day[i+1]=2*(day[i]+1);//相邻元素之间的关系
printf("第%d天的桃子为:%d\n",m,day[10-m]);
}
void main()
{
int m;//用户要计算的是第几天
printf("请输入要求第几天剩下的桃子:\n");
scanf("%d",&m);
taozi(1,m);//调用
while(1){
int j;//循环控制条件
printf("请输入j的值 0:退出 1:继续:\n");
scanf("%d",&j);
switch(j){
//当j=1时,用户可以输入多次想要的数值
case 1:
printf("请输入要求第几天剩下的桃子:\n");
scanf("%d",&m);
taozi(1,m);
break;//跳出
//当j=0时,跳出switch结构
case 0: return; break;
//当用户输入除0和1以外的数值时,会让你重新输入,直到输入正确为止
}
} default: } printf("输入有误请重新输入!");
4.3用链数据结构实现上述求解
//预定义常量和类型
#define NULL 0
//单链表的存储结构
typedef struct LNode{
int data;//数据域
struct LNode *next;//指针域
}LNode;
LNode *L;
LNode *p,*s;
//计算桃子的个数
int CreateList_L(int e,int m)//e是第十天的桃子的个数,m是将要计算的是第几
天
{
int i;
L=(LNode *) malloc(sizeof(LNode));//生成新结点
p=(LNode *) malloc(sizeof(LNode));
L->next=NULL;//创建一个带头结点的单链表
篇二:猴子分桃子的数学问题
《数学文化》(公选课)
论文考察
学院:材料与化学化工学院
专业:化工与制药
姓名:王林
学号:201202020402
选课班号:RX041-2
日期:2013/11/14
数学文化(关于化归与映像反演法)
题目是这样的:5只猴子一起摘了一堆桃子,因为太累了,他们商量先睡一觉再分。
过了不知多久,来了1只猴子,他见别的猴子没来,便将这一堆桃子平均分成了5份,结果多了一个,就将多的这一个吃了,并拿走其中的一堆。又过了不知多久,第二只猴子来了,他不知道有一个同伴已经来过了,还以为自己是第一个到呢,于是将地上的桃子堆起来,平均分成5份,发现也多了一个,同样吃了这一个,也拿走了其中的一堆。第三只、第四只、第五只猴子都是这样……
问题:这五只猴子至少摘了多少个桃子?第五只猴子走后还剩多少个桃子?
题目起源:此题据说是有物理学家狄拉克提出,许多人尝试着去做过,包括狄拉克本人在内都没有找到很简便的方法。著名物理学家李政道教授访问中国科技大学时,曾用此题考过中国科技大学少年班的学生,无人能答。下面就是一个十分有趣的解答。
其中数学文化思想:化归法与映射---反演原则。 题目难点:难在每次分都多了一个桃子。
思路和解法:第一个猴子来时先借给他四个再分,分完之后再还回去,这样第二只猴子来的时候,此问题自由变成第一个猴子来时的分法即照样先借个他四个桃子再分,分完之后再还回去,依此法一直到第五只猴子。
因此,我们可以设这堆桃子至少有x个,借给他们4个,成为x+4个,并设5只猴子分别拿了a、b、c、d、e、个桃子
a=(x+4)/5,
b=4(x+4)/25. C=16(x+4)/125
d=64(x+4)/625e=256(x+4)整数个,所以e=256(x+4)/3125中x+4=3125才能使e为整数。方可解得x=3121。所以最终答案为这堆桃子至少3121个,最后还剩1021个桃子。
方法总结:先借给他们四个桃子再分。
其中有趣的是:桃子尽管多了4个,但每个猴子分得的桃子并不会增多也不会减少。这样,每次都刚好均分成5堆,这样就容易算了。
总结:在经过计算可得:
a b c d e 625 500 400 320 256 125 100 80 64
25 20 24
5 4
所谓化归就是将一个未知问题通过一种关系转化为已经解决了的问题。
所谓映射反演原则则可用一个例子来加以说明:比如说,一个人对着镜子剃胡须,镜子里照出他脸颊上胡须的映像 ,从胡子到映像的关系就叫映射。所以映射就是联系着映像与原像的一种对应关系。
然而,他用剃刀修剪胡子时,作为原象的胡子和剃刀两者的关系可以叫做原像关系,这种原像关系在镜子里表现为映像关系。他从镜子里看到这种映像关系后便能调整提到的映像与胡子映像的关系,于是他也就真正的修剪了胡子。
这里显然用到了反演原则,因为他已经根据镜子里的映像能对应的反演为原像的这一原理,是剃刀准确地修剪了真实的胡子(原像)。
篇三:10盈亏问题
2008四年级奥数训练试题十
盈亏问题
【知识要点】1、在分配物品时,分的份数一定,在两次分配过程中存在一次剩
余(盈)、一次不足(亏)或两次都有剩余或两次都不足的关系,从而找出物品总数与份数的这类应用题。
2、 解题公式: 份数=(盈+亏)÷两次分配的差
或 份数=(盈-盈)÷两次分配的差 或 份数=(亏-亏)÷两次分配的差
例1、幼儿园分糖果给小朋友,如果每人分2颗糖,则剩22颗;如果每人分3颗糖,则少10颗。幼儿园有 个小朋友, 颗糖。
例2、老师将一批作业本奖励给优秀学生,如果每人发3本,则剩下15本;如果每人发5本,仍然剩5本。优秀学生共 人,作业本共 本。
例3、动物园饲养员把一堆桃子分给几只猴子,每只猴子分5个桃子,少20个;如果每只猴子分2个桃子,仍然少2个。一共有猴子 只,桃子 个。
例4、动物园饲养员把一堆桃子分给几只猴子,如果每只猴子分5个桃子,还剩下59个;如果每只猴子分10个桃子,就有3只猴子一个桃子也没分到,还有一只猴子只分到4个桃子。一共有猴子 只,桃子 个。
例5、四H中队的学生参加夏令营,如果5人住一帐篷,就有2人没地方住;如果8人住一帐篷,就可以少搭2只帐篷。四H中队有 人,帐篷 只。
1、有一批作业本奖给学习积极分子,如果每人发3本,就多1本;如果每人发5本,就差33本。有学习积极分子
2、学校为绿化校园,运回一批小树苗,派四年级同学去搬运。如果每人搬5棵,还剩10棵;如果每人搬7棵,就差4棵。有 名同学,树苗 棵。
3、生物小组的同学制作树叶标本,老师拿出一些树叶发给学生。如果每人发14片,则缺19片;如果每人发12片,仍然缺5片。生物小组有 名 同学,树叶 片。
4、王老师给同学们发点心。每人发5块,多54块;每人发8块,还多6块。一共有 名同学,点心 块。
5、四年级同学去科技馆参观,受门票费。如果每人收5元,则少165元;如果每人收8元,仍少45元。一共有 名同学去参观,门票需 元。
6、课间同学帮助学校搬运教科书,如果其中两人每人搬4本,其余每人搬5本,就剩下20本;如果每人搬运7本,就只剩2本。一共有 名同学去搬运教科书,共有教科书 本。
7、小王同学从图书馆借了一本故事书,如果每天读35页,则要推迟一天还书;如果每天读40页,则最后一天要少读5页。这本书共 页。
8、学校四年级分配宿舍,如果每间住6人,则有34人无房住;如果每间住8人,则空出4间宿舍,学校有宿舍 间,学生 人。
篇四:猴子分桃
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
#include
void main() {
int i = 4, m, j, k, count;
while(true) {
count = 0; m = i;
for(k=0;k<5;k++) {
j = m/4*5+1; //i代表下一个猴子能够看到的数,j代表当前猴子能够看到的数 m = j;
if(j % 4 == 0) count++;
else break;
}
if(count == 4) {
printf("一开始个数为:%d\n",j); break;
}
i += 4;
}
}
篇五:六年级上期末测试
期末测试卷
一、填一填。
1、把甲班人数的( )。
14
2、一根绳子的长度比它本身的长米。这根绳子长( )米。
33
1114
3、如果a× = b× = c×,则( )﹥( )﹥( )。
1223
1
调入乙班,两班人数正好相等。原来甲、乙两班人数比是10
4、把一段圆木锯成相等的6段,每段是这根圆木的( ),平均每锯一次所用时间是总时间的( )。
5、如果两个半圆重叠部分的面积相当于小半圆的个半圆的面积比是( )。
6、王明在计算一道分数除法应用题时,把一个数除以答案是
8
,这道题正确的答案是( )。 21
22
,看成乘,结果算出的3322
,相当于大半圆的,大小两73
7、班主任张老师带领五(2)班50名同学栽树,张老师一人栽5棵,男生一人栽3棵,女生一人栽2棵,总共栽树120棵,男生和女生分别有( )名和( )名。
二、明辨是非。(对的画“√”,错的画“×” )
1、本金×利息 = 利率。 2、
( ) ( ) ( ) ( ) ( )
5
既可以表示一个分数,在比里也可表示一个比。 6
3、同圆心的几个圆有无数条对称轴。 4、商品的价格提高
1
后,再降低10%,又回到原价。 10
3
5、12× = 12×3÷4。
4
三、精挑细选。(把正确答案的序号填在括号内)
1、
11
和之间的分数有( )。 45
A、1个 2、甲数×
B、2个 C、无数个 D、9个
73 = 乙数×,(甲、乙都不等于0),则甲:乙 =( )。 84
A、7:6 B、3:7 C、15:7 D、6:7
3、甲仓存货量比乙仓多10%,乙仓存货量比丙仓少10%,那么存货量( )。 A、甲仓多
B、丙仓多
C、甲、两相等
D、无法比较
4、一个半圆形铁片的直径是d厘米,它的周长是( )厘米。 A、? d
B、? d ÷2
C、? d ÷2+d
5、2千克农药中加入20千克水,农药与药水的比是( )。 A、1:10
四、计算。
1、解方程。
217
(+)÷x =
585
1
= 40% 7
B、1:1000 C、1:20 D、1:11
x-25% x = 1.5
351
÷-3 x = 565
x :
2、脱式计算,能简算的要简算。 20×(
437
-)× 5415
2.9×(3.8-
435
)÷(+) 588
3、列式计算。
31
(1)加上它的倒数,和的是多少?
45
(2)一个数的40%加上12正好等于这个数本身,求这个数。
4、求下图阴影部分的面积。(单位:厘米)
五、某工厂对一批产品进行抽查,抽查的600件产品中,一等品有150件,二等品有250 件,三等品有110件,其余的便是次品。
(1)统计时,一等品占总数的( )%,二等品占总数的( )%,三等品占
总数的( )%,次品占总数的( )%。
(2)根据上面的数据完成下面的扇形统计图。
六、国际象棋、中国象棋和围棋号称世界三大棋种。国际象棋中的“皇后”的威力可比
中国象棋中的“车”大得多;“皇后”不仅能控制她所在的行与列中的每个小方格,而且还能控制“斜”方向的两条直线上的每一个小方格。如图甲是一个4×4的小方格棋盘,图中的“皇后Q”能控制图中虚线所经过的每一个小方格。
1、在如图乙的小方格棋盘中有一“皇后Q”,她所在的位置可用(来自:www.sMHaiDa.com 海 达范文网:10只猴子分一堆桃子)(2,3)来表示,请说明“皇后Q”所在的位置(2,3)的意义,并用这种表示法分别写出棋盘中不能被该“皇后Q”所控制的四个位置。
2、如图丙也是一个4×4的小方格棋盘,请在这个棋盘中放入四个“皇后Q”,使这四个“皇后Q”之间互不受对方控制(在图丙中的某四个小方格中标出字母Q即可)。
七、解决生活中的问题。
1、有一块圆形铁皮,搞装潢用去这一块铁皮的40%,还剩下多少平方厘米?
32652、一列火车从上海开往天津,行了全程的,剩下的路程如果每小时行米,6
53
小时可到达天津,上海到天津的铁路长多少千米?
3、
如果甲、乙两车同时出发,几小时后相遇? 4、
买了儿童票和成人票各几张?
小学作文