文档库 最新最全的文档下载
当前位置:文档库 › java猴子吃桃子问题

java猴子吃桃子问题

java猴子吃桃子问题
java猴子吃桃子问题

package second;

/*

* 猴子吃桃问题:

* 猴子第一天摘了若干桃子,吃了一半又一个,第二天又吃了剩下的一半零一个,如此循环,等到第10天,发现只剩下一颗桃子,问第一天摘了多少桃子

*/

public class Peach {

public static void main(String[] args) { int count = 1;

for(int i=2;i<=10;i++){

count = (count+1)*2;

}

System.out.println("猴子第一天一共摘了"+count+"个桃子");

}

}

输出结果为:猴子第一天一共摘了1534个桃子。

猴子吃桃子问题大数据结构课程设计

标准文档 目录 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 函数。

数据结构课程设计-猴子吃桃问题

数学与计算机学院 课程设计说明书 课程名称: 课程代码: 6015059 题目: 年级/专业/班: 学生姓名: 学号: 312011********* 开始时间: 2014 年 5 月 14 日 完成时间: 2014 年 5 月 28 日 课程设计成绩: 指导教师签名:年月日

目录 1 需求分析 (3) 2 概要设计 (3) 3详细设计 (4) 4调试分析 (11) 5用户使用说明 (12) 6测试结果 (12) 7 结论 (14) 致谢 (15) 参考文献 (15)

摘要 本课程设计主要解决猴子吃桃子的问题。一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用Visual C++,数据库采用MS SQL 2000,程序运行平台为Windows 98/2000/XP。在整个程序中分别采用数组数据结构、链数据结构、递归等结构形式实现此问题的求解。程序通过调试运行,初步实现了设计目标。 关键词:程序设计;C++;数组;链;递归;猴子吃桃 引言 在日常生活中经常遇到一些与数据计算有关的问题,许多与猴子吃桃问题类似的问题要求用计算机程序语言来解决,用这个程序算法可以解决一些类似问题,以便利于生活实际。

1 需求分析 1.1任务与分析 任务功能:有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子 要求: 采用数组数据结构实现上述求解 采用链数据结构实现上述求解 采用递归实现上述求解 如果采用4种方法者,适当加分 分析: 这个课程设计分为三个部分,即分别用三种不同的方法解决猴子吃桃子问题。每个部分都有不同的算法思想。 用数组结构实现的算法,通过构造求桃子数的数组,然后输出要求的项来实现。 用链结构实现的算法,则是建立链表,将每天的桃子数目存入链表,然后输出第一天的桃子数。 用递归结构实现的算法,是通过函数本身的特点,反复调用自身,最后找到递归的出口,求得算法的解。 1.2测试数据 输入任意一篇文章,按要求输入功能序号与字符串。 测试是否能按要求输出正确结果。 2 概要设计

简单的儿童绕口令:《猴子吃桃子》

简单的儿童绕口令:《猴子吃桃子》 【狗】南边来了他大大伯子家的大搭拉尾巴耳朵狗,北边来了他二大伯子家的二搭拉尾巴耳朵狗 他大大伯家的大搭拉尾巴耳朵狗,咬了他二大伯家的二搭拉尾巴耳朵狗一口; 他二大伯家的二搭拉尾巴耳朵狗,也咬了他大大伯家的大搭拉尾巴耳朵狗一口 不知是他大大伯家的大搭拉尾巴耳朵狗,先咬了他二大伯家的二搭拉尾巴耳朵狗; 还是他二大伯家的二搭拉尾巴耳朵狗,先咬了他大大伯家的大搭拉尾巴耳朵狗 【猴子吃掉小桃子】猴子吃掉小桃子】树上有只小桃子,树下有只小猴子 风吹桃树哗哗响,树上掉下小桃子 桃子打着小猴子,猴子吃掉小桃子 【白庙、白猫、白帽】白庙、白猫、白帽】山顶有座白庙,白庙里有只白猫 白庙外有顶白帽,白猫看见了白帽,叨着白帽跑进了白庙 【东边一座楼】东边一座楼】一座楼东边一座楼,楼上两人打拳头 拳头打,打拳头 来了一个人,拉了一头牛,将牛拴在楼脚下,看他两人打拳头 拳头打,打拳头 又来了一个人,领了一只猴,将猴放在牛脚下,看他两人打拳头 拳头打,打拳头 又来了一个人,挑了一担油,将油放在猴脚下,看他两人打拳头 拳头打,打拳头 又来了一个人,挑了一担绸,将绸放在油脚下,看他两人打拳头 拳头打,打拳头,两人打垮车边楼

垮子楼,压倒牛,牛一蹲,蹲倒猴,猴一抓,抓倒油,油一泼,泼上绸 绸问油,卖油买绸来赔绸; 油问猴,卖猴买油来赔油; 猴问牛,卖牛买猴来赔猴; 牛问楼,卖楼买牛来赔牛 只问绸扯油来油扯猴,猴扯牛来牛扯楼

电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。电子版文档,可直接编辑。希望对您有所帮助,本文件仅供个人使用,不得商用。

猴子吃桃子问题大数据结构课程设计.doc

标准文档 目录 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 函数。

数据结构课程设计--猴子吃桃问题

数据结构课程设计报告题目:猴子吃桃问题 院(系):数理学院 专业:信息计算科学 班级:计科 1101 学生:史城逸 学号: 1104101127 指导老师:周海岩 2012年6月

摘要 当下C++语言是一门重要的课程学习,学会运用并结合其他的知识一起解题是一件值得我们重视的,数据结构是一门结合C++知识的重要课程,因此我们要学会将平时课本的知识运用到我们现实生活当中,这样才能让我们所学的知识更加深刻。猴子吃桃的问题就是一个例子,我们可以运用简单的三种解法进行解题,即数组求值解法,链表求值解法和递归求值解法,通过分析三种解法,根据各种解法的功能从而我们得到最合适的求法。 关键词:猴子吃桃,数组法,链表法,递归法,分析 Abstract The c + + language is an important course study, learn to use and in combination with other knowledge problem solving is a worthy together we value, the data structure to be a combination C++ knowledge important course, so we have to learn how to use the knowledge will usually textbooks to our reality life, so that we can apply the knowledge more deeply. The monkeys eat the peach problem is one example, we can use simple three solution to problem solving, namely array evaluated method, the list of the evaluated hydrolysis and recursion evaluated method, through the analysis of three kinds of solution, according to various methods to get the most appropriate functions we the method. Key words: the monkeys eat the peach, the array method, chain table method, a recursive method, analysis

猴子吃桃子问题 数据结构课程设计

目录 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函数。

小猴吃桃情境图

师:“同学们想一想,你们以前见过0吗?”让学生拿出自己的直尺,教师出示直尺图。然后让学生先在直尺上找到0,再找到1,说明0到l是一段。用1表示;接着我2,说明0到2是两段,用2表示……一段一段地数到5。说明0是开始,是起点。0在1的前面。带着学 生从0到5数几遍教学过程: 一、情境导入(课件出示小猴吃桃情境图) 今天,老师给大家带来了一个小客人,看,他是聪明可爱的小猴子!因为小猴上课专心听讲,积极发言,所以妈妈奖励了他。老师希望大家也向小猴学习! 下面咱们一起看猴妈妈给小猴买了什么奖品。咦,桃子!瞧,小猴看到奖品多高兴呀,(出示图片1)(生说)大家一起说,妈妈奖励了小猴几个桃子?那也就是说这时盘子里桃子的数量用数字几表示?看到桃子,小猴乐呵呵地吃了起来。(生:2)盘子里桃子的数量用数字几表示?(生1)这桃子真香呀,他忍不住又吃了一个,现在盘子里还有桃子吗?这时盘子里桃子的数量用数字几表示?(0 )小猴吃完了桃,美滋滋地舔了舔嘴巴说:这桃真好吃。师:其实0和1,2一样,也是一个数,0表示没有。 板书课题(0的认识)师:今天,咱们就和0交个朋友吧。 二、新授 1.感受0的意义:A:没有 师:接下来咱们一起玩游戏吧 游戏一:猜手指:要求是老师出示手指,大家一起说用数字几表示出示3个手指:可以用数字几表示?(生:3)出示1个手指:可以用数字几表示?(生:1)出示拳头:可以用数字几表示呢?(生:0)问:为什么用0表示?

游戏二:看谁反应快 师:师报数,生击掌2,0问:老师报0时,为什么不击掌? 举例:你能说一个生活中用0表示没有的例子吗? 2.感受0的意义:B:起点 师:0除了表示没有之外,它还有很多的小秘密,咱们一起去找找吧,大家拿出直尺仔细观察,直尺上的0在哪儿?在几的前面?观察尺子左边的0,(点击课件0)猜猜看,这个0也是表示没有吗?想想看,直尺上的刻度是从哪里开始的?(生:从0开始的)对,从0开始,我们就可以说,0表示的是起点(板书:起点) 师:观察尺子,从0这个起点开始,数字会越来越大,数字越大,离起点0越远,利用这个原理,以后我们会学习用直尺量物体的长度。读数(先顺读再倒读) 举例:你还见过生活中哪些地方用0表示起点吗? 师:的确,生活中用0表示起点的例子很多,老师这里也准备了几张生活中用0表示起点的图片,一起来欣赏一下。(出示图片:①.起跑图110米栏世界冠军刘翔站在跑道的那个位置可以用0来表示。②.立定跳远图。这样,大家在同一起点开始,比赛才公平) 3.感受0的意义:C界限 师:我们知道了0可以表示没有,也可以表示起点。它还表示其他意义呢,示温度计:这上边也有0,如莫旗某日的最低气温是0℃,显然不能说这一天莫旗“没有”温度。这里,温度计的刻度“0”以上的数表示零上几度,“0”以下的数表示零下几度,“0”起了“零上

猴子吃桃问题数据结构课程设计

一、设计题目猴子吃桃子问题 有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 二、运行环境(软、硬件环境) VC++6.0 PC电脑一台 三、算法的需求分析 1)采用数组数据结构实现上述求解 2)采用链数据结构实现上述求解 3)采用递归实现上述求解 4)如果采用4种方法者,适当加分 //用户界面 int Desk(int n) { printf("**************************************************\n"); printf("| 欢迎进入猴子吃桃子系统|\n"); printf("| 1-数组法2-链表法3-递归法4-二叉树法5-退出|\n"); printf("***************************************************\n"); printf("请输入要选择的方法: "); scanf("%d",&n); getchar(); system("cls"); //刷新屏幕 while(n<1 || n>5) { printf("***输入错误! 请重新输入***\n"); scanf("%d",&n); } return n; } 四、算法概要设计 //采用链数据结构(栈) 实现上述求解 typedef struct { int *top; int *base; }stack;

//初始化一个栈 stack Init(stack *s) { s->base=(int *)malloc(STACK_SIZE*sizeof(int)); if(s->base == NULL) { printf("Init failed !\n"); exit(-1); } s->top = s->base; return *s; } //二叉树 创建一个大小为DAYS(由用给出)的二叉树,二叉树的左孩子节点存放当天的桃子数,右节点存放数字1,即为多吃的一个桃子。 typedef struct TNode { int data; struct TNode *lchild; struct TNode *rchild; }tree; //创建一个二叉树 tree CreatTree(tree *T) //T 为指针类型 { int n=0,i=0; tree *p,*pr,*T1; T=(tree *)malloc(sizeof(TNode)); T1=T; T->data=1; //根节点的数据为第DAYS天的桃子数 for(i=1; ilchild=NULL; pr->rchild=NULL; p->data=0; pr->data=1; T1->lchild=p; T1->rchild=pr; T1=p; } T1->lchild=NULL; T1->rchild=NULL; return *T; //返回T的地址 }

猴子吃桃子递归算法

递归算法案例—猴子吃桃子 一、案例描述 某天,一只猴子摘了一堆桃子,具体多少它没数。猴子每天吃了其中的一半然后再多吃了一个,第二天吃剩余的一半后再多吃了一个,直到第10天,猴子发现只有一只桃子。问这只猴子在第一天摘了多少个桃子 二、算法分析 这只猴子共用了10天吃桃子,只知道最后一天剩余1只桃子,要想求出第1天剩余的桃子数,就先要求出第2天剩余的桃子数,以此类推。假设An表示第n天剩余的桃子数量,则有如下关系: A1=(A2+1) x 2 A2=(A3+1) x 2 A3=(A4+1) x 2 …. A1=(A10+1) x 2 A10=1 从上述的式子可知,只能通过倒推来求得第一天的桃子数 三、算法实现 算法代码实现如下: #include /** *@briefpeach *@paramn:猴子吃桃子的天数 *@return */ long peach(int n){ int pe; if(n==1){ return1; }else{ pe=(peach(n-1)+1)*2; } return pe; } int main(void) { int n;//天数 long peachnum;//最初桃子数

printf("pleasenumberofDate"); scanf("%d",&n); peachnum=peach(n); printf("Thepreviousnumberis:%1d",peachnum); return0; } 程序中使用递归调用peach函数来计算第一天的桃子数量。其中关键是前一天总比后一天多一半加1.当n=10的时候,正好求出猴子吃桃子问题

一个猴子吃3个桃子多出一个

1. 一个猴子吃3个桃子多出一个,一个猴子吃4个桃子就少2个。问有几个 猴子几个桃子。 2.如下图,把3、4、6、7四个数填在四个空格里,使横行、竖行三个数相加都得14。怎 样填? 1.哥哥有4个苦果,姐姐有3个苹果,弟弟有8个苹果,哥哥给弟弟1个后,弟弟吃了3 个,这时谁的苹果多? 2.小明今年6岁,小强今年4岁,2年后,小明比小强大几岁? 3.同学们排队,小明前面有4人,后面有4人,这一队一共有多少人? 4.有一本书,小华第一天看了2页,以后每一天都比前一天多看2页,第4天看了多少页? 5.同学们排队做操,从前面数,小明排第4人,从后面数,小明排在第5人,这一队一共有多少人? 6.有8个皮球,如果男生每一发一个,就多2个,如果女生每人发一个,就少2个,男生有多少人?女生有多少人? 7.老师给9个三好生每人发一朵花,还多出1朵,老师共有几朵花? 8.有5个同学投沙包,老师如果了给每人2个沙包就 差1个,老师共有多少个沙包? 9.明明有9本书,爸爸给他买了5本,小明借去2本,

明明还有几本书? 10.排队做操时按高矮排列,李平前面有8个比他高, 后面有2个比他矮,这一队有多少人? 11.小林吃了8块饼干后,还有4块,小林原来有多少 块饼干? 12.哥哥送给弟弟5支铅笔后,还剩下6支,哥哥原来 有几支铅笔? 13.第二组有8名男同学,女同学和男同学一样多,第 二组共有多少名同学? 14.小华和小刚第人有10张卡片,大华给了小刚2张 后,小刚比大华多几张? 15.妈妈给小华5个苹果,给小刚4个苹果,小华和小 刚共吃了6个,他们还有几个苹果? 16.同学们去体育馆去借球,一班借了9个,二班借了 6人,体育馆的球减少了多少个? 17.明明从布袋里拿出5个白皮球和5个黄皮球,现在 白皮球剩下10,黄皮球剩下5个。原来布袋里有多个白皮球和多少个黄皮球? 18.芳芳做了14朵花,晶晶做了8朵,芳芳要晶晶几 朵两人才一样多? 19.妈妈买回下些鸭蛋和12个鸡鸡蛋,吃了8个鸡蛋 后,剩下的鸡蛋和鸭蛋同样多,妈妈共买回几个

猴子吃桃问题

软件综合课程设计 猴子吃桃问题 学生搭配问题 二〇一四年六月

《猴子吃桃子课程设计》报告 一、问题陈述 猴子吃桃子问题: 有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 二、需求分析 要求:1.采用数组数据结构实现上述求解; 2.采用链数据结构实现上述求解; 3.采用递归实现上述求解。 三、概要设计 四、详细设计 猴子每天都吃当前桃子的一半多一个,假设今天还有n个桃子,则前一天就有(n+1)*2个桃子。又已知第十天只剩下一个桃子,则可代入以上公式求出第九天的桃子数,以此类推求下去便可得到第一天的桃子数。 1.采用数组数据结构实现上述求解 声明一个长度为10的整形数组arr[10],分别存放各天猴子吃前的桃子数。下图所示 arr[0] arr[1]arr[2]arr[3] arr[4]arr[5]arr[6]arr[7] arr[8]arr[9]先将arr[9]赋值为1,用一个循环语句 for (int i=9; i>0; i--)

{ arr[i-1]=2*(arr[i]+1); } 为其余各数组元素赋值,则数组元素arr[0]的值便是该问题的解。 2.采用链数据结构实现上述求解 建立单链表,声明一个类用来对链表的结点指针进行定义,在初始化函数中利用头插法创建具有10个元素的链表。 那么N 10便是要求问题的解。 3.采用递归实现上述求解 利用一个递归函数来进行求值:依据返回值来记录每一天剩余桃子情况。 int UseRecursion(int n) { int m; if(n==1) m=1; else m=(UseRecursion(n-1)+1)*2; return m; } 五、程序代码 1.头文件“MEP.h “ #ifndef MEP_H #define MEP_H #include #include using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void UseLinkList();

小猴子吃桃子看图写话.doc

小猴子吃桃子看图写话 【篇一:小猴子吃桃子看图写话】 沙利艾 秋天来了,田林园的果子成熟了,猴妈妈和小猴去园里摘果子吃,小猴看见一个个有红又大的桃子,馋得直流口水。 小猴子撒娇的说:"妈妈!妈妈我想吃桃子!" "要吃多少?"猴妈妈温和的说。 小猴子欢快的说"很多!很多的桃子!" "一天吃三个,够不够?"小猴子撅着小嘴,不高兴的摇摇头说:"不要不要!太少了!太少了!" 猴妈妈眼球一转说:"三天吃九个,够不够?" 小猴子数数手指,又蹦又跳乐呵呵的说:"好呀!好呀!谢谢妈妈。" 后来,猴妈妈按约定给小猴子吃桃子,慢慢的小猴才发觉不对劲。 【篇二:小猴子吃桃子看图写话】 朱靖祺 一个烈日炎炎的中午,小猴子来到桃树下玩耍,抬头一看,看见了很多很多的大桃子,口水都流了两米长,小猴就跑回家抱着妈妈的大腿在撒娇。 "妈妈,妈妈,我要吃又大又红的大桃子。"

"那就一天吃三个"。猴妈妈笑着说道,"够不够了呢?" 小猴子大声地说:"不够,不够,我要吃很多很多的桃子。" "那就三天吃九个大桃子吧!"妈妈在旁边偷笑说道。 小猴子听了,大声叫了起来:"够了,够了,谢谢妈妈,你真是个好妈妈。" 这真是只活泼可爱的笨猴子啊! 【篇三:小猴子吃桃子看图写话】 曾秋 一个阳光明媚的早晨,猴妈妈带小猴子去桃园里,小猴子看见又红又大的桃子,"妈妈我想吃桃子,好不好?"小猴子摇了摇猴妈妈的手说。 猴妈妈摸了摸小猴子的头说:"一天吃三个,够不够?" "不够不够!太少太少!"小猴急忙摇了摇手,"妈妈一天才吃三个,我不够吃呀!" 猴妈妈突然灵机一动说:"三天吃九个,够不够?" "够了,够了!谢谢妈妈!" 【篇四:小猴子吃桃子看图写话】 向芸萱 在一个阳光明媚的早晨,小猴子去和旁边的邻居家帮忙。 它回到家就撒娇地对猴妈妈说:"妈妈,我想吃桃子。" "一天吃三个,够不够?"猴妈妈对小猴温柔地说。 "不够不够!"小猴子又摇头又摇手地说,"太少太少!"

猴子吃桃子问题

数据结构课程设计 班级: 姓名: 学号: 日期:2011—1—3

目录 1 问题描述 (1) 2 需求分析.............................................................. 错误!未定义书签。 3 概要设计 (2) 3.1函数应用2 3.2模块划分错误!未定义书签。 4 详细设计 (3) 5 测试分析 (10) 6 课程设计总结 (11)

1.问题描述 猴子吃桃子问题 有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求: 1)采用数组数据结构实现上述求解 2)采用链数据结构实现上述求解 3)采用递归实现上述求解 2 需求分析 1)根据问题已知第十天剩余桃子数,求总共桃子数,我们先列出方程可知,有后往前推可知道每天剩余桃子数,这样来求解。 2)栈链比较困难,需要跟递归联系,递归实现在说。 3)递归实现可以有数组上体现f(n)=2f(n+1)+2,跟数组的道理查不多,而栈链实现也需要这个方程,所以整个程序是相通的。

1)函数应用 除了主函数以外大部分都是算法函数,还有栈的输入与输出函数: void main() Push(&S,&e) Pop(&S,&e) 2)模块划分 本程序包括四个模块: ( 1 ) 主程序模块 void main() { 初始化; 数组求解; 递归求解; 栈链求解; } ( 2 ) 栈模块——实现栈的抽象数据类型 ( 3 )数组模块——实现数组的运用 ( 4 ) 递归模块——实现递归的运用

猴子吃桃 数据结构课程设计报告 中南大学

用C语言解决猴子吃桃子问题 学生姓名:贾勤指导老师:湛新霞 摘要本课程设计主要解决猴子吃桃子的问题。一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用Visual C++,数据库采用MS SQL 2000,程序运行平台为Windows 98/2000/XP。在整个程序中分别采用数组数据结构、链数据结构、递归等结构形式实现此问题的求解。程序通过调试运行,初步实现了设计目标。 关键词程序设计;C++;数组;链;递归;猴子吃桃 1 引言 在日常生活中经常遇到一些与数据计算有关的问题,许多与猴子吃桃问题类似的问题要求用计算机程序语言来解决,用这个程序算法可以解决一些类似问题,以便利于生活实际。 1.1课程设计背景 猴子吃桃问题涉及一个比较有趣的数组,把猴子吃桃的天数倒过来看的话,以天数作为数组的下标i,剩下桃子的个数a[i]的递推公式为a[i]=(a[i-1]+1)*2。a[i]实际代表了倒数第i天剩下的桃子数。所以可以求得此数组的通项公式为 a[i]=3*pow(2,(i-1))-2 (i>=2)

1.2 课程设计目的 在这个程序中我们主要是用C语言解决猴子吃桃问题,一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 生活中或学术上有很多类似的问题,这个问题看似简单,却可能使很多重大问题的重要组成部分或者是核心。解决此问题的目的是以便在生活中解决根本性问题,是生活变得更加便利。 1.3 课程设计内容 这个程序的内容是以C语言为程序语言载体分别用数组数据结构、链数据结构、递归等结构形式实现此问题的求解。

课程设计-猴子吃桃

湖南工学院 数据结构课程设计 题目:数据结构实现—猴子吃桃 系别: 专业: 年级: 班级: 学生: 学号:

目录 ●论文提要 (3) ●需求分析 (4) ●详细设计 (5) ?数组结构 (5) ?递归 (7) ?链表 (9) ●调试结果 (11) ●调试分析 (12)

论文提要 初步分析说明数据结构和抽象数类型等基本概念;从抽象数据类型的角度,通过数学应用的分析,把问题进行分析,整理,面后通过观察选择适当的逻辑结构、存储结构入及其相应的算法来解决问题,数据结构课程主要是为了培养我们对数据的抽象能力和对算法在时间和空间和复杂度上进行优化,猴子吃桃这一数学方面的例题是很典型的一道程序例题,在这里主要以C语言作为数据结构和描述语言,分析并采用数组数据结构,递归,链数据结构实现上述问题。

需求分析 实现课题——猴子吃桃 摘要:猴子吃桃这一典型的数学课题,其主要实现的过程是将其数学课题公式化,用一些简单的数据定义、初使化、通过一系列的条件判断和循环用来实现学数公式的计算机化。 通过C语言基础分析和数据结构初步了解,我们使用C语言,利用C和数据结构的结合使用,让我们在短时间内建立起对数据结构的进一步认识。然后,形成正确的对算法和优有个的理解观念。 关键词:C语言的基本了解,数据结构的基本了解, 数据中数组的使用,递归调用,用C语言实现数据链表 题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少? 要求:采用数组,递归,链数据结构实现上述求解

C++猴子偷桃问题

1、题目分析 根据题目要求,设猴子共摘的桃子个数为n 即是第一天桃子的个数n 1, 第第二天时桃子个数n 2,第三天时桃子个数n 3,第四天时桃子个数n 4,第五天时桃子个数n 5,第六天时桃子个数n 6,第七天时桃子个数n 7,第八天时桃子个数n 8,第九天时桃子个数n 9,第十天时桃子个数n 10。 由题中“每天都吃当前桃子的一半且再多吃一个”很容易知道n 10=1,(n 9/2+1)=n 10,n 8-(n 8/2+1)= n 9…… 依次推出公式:n i-1-(n i-1/2+1)= n i (0)10≤=0;i--) a[i]=2*(a[i+1]+1);为其余各数组元素赋值,则数组元素a[0]的值便是该问题的解。 3、链表求解法分析 建立单链表,声明一个类用来对链表的结点指针进行定义,在初始化函数中利用头插法创建具有10个元素的链表,并依次安公式n i-1= 2*(n i +1)(0)10≤

那么N1便是要求问题的解。 4、递归法分析 利用一个递归函数来进行求值:依据返回值来记录每一天剩余桃子情况。int process(int n) { if(n==10) return 1; else return 2*(process(n+1)+1); } 5、源代码 #include class list { public: int data; class list *next; void push(); }; typedef class list node;//建立单链表(将class重定义为node) typedef node *link;//定义结点指针 link p=NULL; void list::push() { link s; int j=1;

数据结构课程设计——猴子吃桃问题及二叉树

课程设计任务书 理学院数学0902 班学生(28) 课程设计课题: 1猴子吃桃问题: 有一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半再多吃一个,到了第10天就剩下一个桃子,用多种方法实现求出原来这群猴子共摘了多少桃子。 要求:1)采用数组数据结构实现上述求解; 2)采用链式数据结构。 2.实现二叉排序树: 要求:用顺序表和二叉链表作为数据结构 1)以回车(’\n’)为输入结束标志,输入数列L,生成一棵二叉排序树T; 2)对二叉排序树进行中序遍历,输出结果; 3)输入元素m,查找二叉排序树T,若存在包含m的结点,则删除该结点,并做中序遍历。否则显示信息“无m这个结点”。 一、课程设计工作日自 2012 年 2 月 21 日至 2012 年 3 月 2 日 二、同组学生:无 三、课程设计任务要求(包括课题来源、类型、目的和意义、基本要求、完成时 间、主要参考资料等): 课题来源:教师提供 课题类型:设计 课题的目的和意义:通过课程设计了解c语言中结构体的使用以及利用数据结构设计大型程序 主要参考资料: 黄刘生.数据结构.北京:经济科学出版社,2005 黄杨铭.数据结构.北京:科学出版社,2001 严蔚敏. 数据结构(C语言版)[M]. 北京:清华大学出版社. 2008. 苏光奎.数据结构导学.北京:清华大学出版社,2002 百度文库 指导教师签字:教研室主任签字:

课程设计评审表 理学院数学0902 班学生(28)

问题一、猴子吃桃问题 具体程序及运行结果如下: #include #include #include #define NULL 0 #define Day 9 //**************************************函数声明*********************************************** void creat(); void print(); void array(); void End(); void display(); void fanhui(); void display() { system("cls"); printf("\n ******** 猴子吃桃子的问题**********\n"); printf("\n ** 1,用数组数据结构的方法实现。**\n"); printf("\n ** 2,用链数据结构的方法实现。**\n"); printf("\n ** 3,退出程序。**\n"); printf("\n **************************************\n"); printf("\n 请输入您的选择(1,2,3):"); } //*****************************************数组************************************** void array() { int A[Day+1];//定义数组 int i; A[Day]=1;//第十天的桃子数 for(i=Day;i>=1;i--) A[i-1]=(A[i]+1)*2; /*第一天的桃子数是第2天桃子数加1后的2倍*/ printf("the total of peaches are %d\n",A[0]); printf("桃子变化为:\n"); for(i=0;i<= Day;i++) printf("第%d天的桃子数为:%d\n",i+1,A[i]); } //********************************链表算法***************************************** typedef struct linknode { int data;

小猴吃桃.doc

小猴吃桃 一条弯弯的小河,从一片茂密的森林旁流过,河里有许多小鱼游来游去。一只活泼顽皮的小猴子,住在河边一栋漂亮的房子里。房子周围长满了花草和柳树。 到了桃子成熟的季节,河对岸的一棵高大的桃树上,桃子长得又红又。小猴想吃桃子,可它不会游泳,过不去河这可怎么办呢? 小猴想了半天。它看见旁边的大树,突然想出了一个好主意,"我可以用树做成小船呀!"它立刻回到家里,拿出斧头和小锯来到大树下。它用力砍了好多下还是砍不动,于是它去找大象叔叔帮忙。 "大象叔叔您能帮我砍一棵树妈?"小猴礼貌地说,"好吧我来帮你。"大象叔叔说完和小猴一起来到树下,这时不少小动物都来凑热闹。只见大象叔叔把它的长鼻子卷在树干上,忽然听到飕的一声,树被连根拔起来了!小猴高兴极了!它用斧头砍断树根,再用小锯锯掉树枝,前来凑热闹的小动物们也一起帮忙,小船很快就做好了。 小动物们小心翼翼地把小船推到河里,小猴划啊划,终于划到了对岸。它把所有的桃子都摘下来,用小船载回来分给大家吃。 大象叔叔今天的心情特别好,和小动物们边吃桃子边跳

舞,小河边洋溢着一片欢乐的气氛...... 辽宁抚顺将军二校三年一班三年级:李昊洋 一条弯弯的小河,从一片茂密的森林旁流过,河里有许多小鱼游来游去。一只活泼顽皮的小猴子,住在河边一栋漂亮的房子里。房子周围长满了花草和柳树。 到了桃子成熟的季节,河对岸的一棵高大的桃树上,桃子长得又红又。小猴想吃桃子,可它不会游泳,过不去河这可怎么办呢? 小猴想了半天。它看见旁边的大树,突然想出了一个好主意,"我可以用树做成小船呀!"它立刻回到家里,拿出斧头和小锯来到大树下。它用力砍了好多下还是砍不动,于是它去找大象叔叔帮忙。 "大象叔叔您能帮我砍一棵树妈?"小猴礼貌地说,"好吧我来帮你。"大象叔叔说完和小猴一起来到树下,这时不少小动物都来凑热闹。只见大象叔叔把它的长鼻子卷在树干上,忽然听到飕的一声,树被连根拔起来了!小猴高兴极了!它用斧头砍断树根,再用小锯锯掉树枝,前来凑热闹的小动物们也一起帮忙,小船很快就做好了。 小动物们小心翼翼地把小船推到河里,小猴划啊划,终于划到了对岸。它把所有的桃子都摘下来,用小船载回来分给大家吃。