c语言程序设计五猴分桃问题实验报告.doc

课程设计报告学院、系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名:赵学文指导教师:郭晓燕完成时间:2013年3月-5月五猴分桃问题一、设计任务与目标关于五猴分桃问题,已经有很多人思考和尝试建立了一些程序解决。五猴分桃,五只猴子合作摘了很多桃子,感到累了,决定先去睡觉,醒后再分。不知过了多久,第一只猴子醒了,看见其它猴子都没有醒,就把所有桃子分为五堆,发现多一个,就吃了一个,拿走一堆,把剩下的又堆在一起走了。第2只猴子醒来,以为自己是第一个,也是把桃子分为五堆,也是多一个,就吃了一个,拿走一堆,剩下的又堆在一起走了。第3,4,5只猴子都是这样归根究底是一个数学上的问题,但在程序员眼中,解决一个问题,不仅要得出答案,还要以最简便的方法,在最短的时间内得出答案。所以,即使这是一个耳熟能详的问题,不同程序员眼里,也有不同的方法。在复杂之中提取捷径便是我的目的,完成这个设计,能提高自我能动性,并联系数学实际。我希望通过这次设计,增强自我独立能力,并进一步激发我对编程这一方面的兴趣。二、方案设计与论证对于这一个问题,难就难在每次分时都多出1个桃子。这又关系到数学问题,每次少1个,数据不确定,如果从大方面去考虑的话,计算过程确实比较复杂。既然如此,何不从另一个角度入手?我们没必要先去猜这堆桃子到底总共有多少个,大概范围为多少。实际上可以理解桃子里少了4个;于是,我们可借给它们4个再分。为什么?因为尽管多了四个,但每个猴子分得的桃子不会多,也不会少,且每次都可以被5整除。怎样借?方法其实很简单,就是数学的假设问题。我们不妨先设借到4个桃子后的总数为X,原来桃子的总数为Y。则有Y=X-4。第一只猴子分完后的总数为:A=X/5*4;第二只猴子分完后的总数为:B=A/5*4=X/25*16;第三只猴子分完后的总数为:C=B/5*4=X/125*64;第四只猴子分完后的总数为:D=C/5*4=X/625*256;第五只猴子分完后的总数为:E=D/5*4=X/3125*1024;事实上每次分前,猴子的数量都不变。分后,桃子的堆数也不变。于是,各猴子分桃便有上式这样的一种关系。通过分析,很明显,借到4个桃子后,每次分完时总数都是整数。X从第五只猴子分完后至少能被3125整除,所以X至少为3125。猴子至少摘了桃子Y=3125-4=3121;第一只猴子至少分得:3125/5=625;第二只猴子至少分得:2500/5=500;第三只猴子至少分得:2000/5=400;第四只猴子至少分得:1600/5=320;第五只猴子至少分得:1280/5=256;所以最后还剩桃子为1280-256-4=1020个桃子。整个过程看似繁琐复杂,但事实上在添加法后,程序变得更加简明易懂。三、程序框图或流程图,程序清单与调用关系图1Main函数:程序的主函数定义整型变量i,x,y,num1,num2,num3,num4,num5,zi代表程序循环的次数x代表加上5个桃子后摘下桃子的总数y代表摘下桃子的总数num1,num2,num3,num4,num5分别代表连续五个猴子分到的桃子数z代表最后一只猴子拿走桃子后剩下的数量四、全部源程序清单#includevoidmain()/*主函数*/{inti,x,y;intnum1,num2,num3,num4,num5,z;for(i=1;ivoidjisuan(floata,floatb,floatc,floatd)//进行运算符和括号的排列及计算{if(a+b+c+d==24){printf(“%1.0f+%1.0f+%1.0f+%1.0f=24\n“,a,b,c,d);}if(a+b+c-d==24){printf(“%1.0f+%1.0f+%1.0f-%1.0f=24\n“,a,b,c,d);}if(a+b+c*d==24){printf(“%1.0f+%1.0f+%1.0f*%1.0f=24\n“,a,b,c,d);}if(a+(b+c)*d==24){printf(“%1.0f+(%1.0f+%1.0f)*%1.0f=24\n“,a,b,c,d);}if((a+b+c)*d==24){printf(“(%1.0f+%1.0f+%1.0f)*%1.0f=24\n“,a,b,c,d);}if(a+b+c/d==24){printf(“%1.0f+%1.0f+%1.0f/%1.0f=24\n“,a,b,c,d);}if(a+(b+c)/d==24){printf(“%1.0f+(%1.0f+%1.0f)/%1.0f=24\n“,a,b,c,d);}if((a+b+c)/d==24){printf(“(%1.0f+%1.0f+%1.0f)/%1.0f=24\n“,a,b,c,d);}if(a+b-c+d==24){printf(“%1.0f+%1.0f-%1.0f+%1.0f=24\n“,a,b,c,d);}if(a+b-c-d==24){printf(“%1.0f+%1.0f-%1.0f-%1.0f=24\n“,a,b,c,d);}if(a+b-c*d==24){printf(“%1.0f+%1.0f-%1.0f*%1.0f=24\n“,a,b,c,d);}if(a+(b-c)*d==24){printf(“%1.0f+(%1.0f-%1.0f)*%1.0f=24\n“,a,b,c,d);}if((a+b-c)*d==24){printf(“(%1.0f+%1.0f-%1.0f)*%1.0f=24\n“,a,b,c,d);}if(a+b-c/d==24){printf(“%1.0f+%1.0f-%1.0f/%1.0f=24\n“,a,b,c,d);}if(a+(b-c)/d==24){printf(“%1.0f+(%1.0f-%1.0f)/%1.0f=24\n“,a,b,c,d);}if((a+b-c)/d==24){printf(“(%1.0f+%1.0f-%1.0f)/%1.0f=24\n“,a,b,c,d);}if(a+b*c+d==24){printf(“%1.0f+%1.0f*%1.0f+%1.0f=24\n“,a,b,c,d);}if((a+b)*c+d==24){printf(“(%1.0f+%1.0f)*%1.0f+%1.0f=24\n“,a,b,c,d);}if(a+b*(c+d)==24){printf(“%1.0f+%1.0f*(%1.0f+%1.0f)=24\n“,a,b,c,d);}if((a+b)*(c+d)==24){printf(“(%1.0f+%1.0f)*(%1.0f+%1.0f)=24\n“,a,b,c,d);}if(a+b*c-d==24){printf(“%1.0f+%1.0f*%1.0f-%1.0f=24\n“,a,b,c,d);}if((a+b)*c-d==24){printf(“(%1.0f+%1.0f)*%1.0f-%1.0f=24\n“,a,b,c,d);}if(a+b*(c-d)==24){printf(“%1.

五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc相关推荐

  1. c语言程序课程设计投票程序,C语言课程设计--C语言投票程序.doc

    C语言课程设计--C语言投票程序 C程序设计实习报告 题目:C语言投票程序 学 院: 专 业: 姓 名: 班级学号 指导教师: 2010 年 07 月 17 日 目录 一.课程设计题目描述与要求--- ...

  2. 课程设计图书管理系统c语言,图书管理系统c语言课程设计c语言课程设计作业获得95分全院第一......

    > 下载中心  >   > 图书管理系统 c语言课程设计 english version 图书管理系统 c语言课程设计 所属分类: 开发工具:c/c++ 文件大小:2720kb 下载 ...

  3. type pdf c语言课程设计,c语言课程设计-.pdf

    西昌学院 C语言课程设计报告 题 目_学生成绩管理系统______ 学生编号_ ___________ 学生姓名_ _____________ 班 级 指导教师__ _ __ _____ 2011 年 ...

  4. 极客c语言课程设计,c语言课程设计之实习报告共5天完整.doc

    c语言课程设计之实习报告共5天完整 <C语言程序设计> 短学期实习报告 系名:计算机科学与技术系 专业:软件工程 年级:2015级 姓名: <C语言程序设计>短学期实习成绩评定 ...

  5. 石头剪子布c语言课程设计,c语言课程设计报告石头剪子布.doc

    c语言课程设计报告石头剪子布.doc 题目:石头剪子布 专业: 班级: 学号: 姓名: 指导教师: 成绩: 设计日期:2010-7-5-2010-7-9 目录: TOC \o "1-5&qu ...

  6. 物资管理系统c语言课程设计,C语言实现仓库物资管理系统

    前言 此系统为博主大一上学期C语言课程设计的大作业,由于当时初步接触C语言,现在来看程序写的太烂了,简直不忍直视--但是还是想通过博客的形式记录下来,也可以给刚接触学习C语言的人一些参考吧! 系统功能 ...

  7. c语言编写英语词典软件,C语言课程设计一种简单的英文词典排版系统的实现.doc...

    C语言课程设计一种简单的英文词典排版系统的实现 目 录 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 5.算法设计6 6.程序代码13 7.程 ...

  8. 小型仓库管理c语言课程设计,C语言课程设计_仓库管理系统.doc

    C语言课程设计 仓库管理系统 #include struct cangku { int num; char name[20]; char introdution[50]; float square; ...

  9. 订单管理系统c语言课程设计,C语言课程设计订单管理系统资料.doc

    PAGE 41 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时间: 2016- ...

最新文章

  1. Eclipse中jsp、js文件编辑时,卡死现象解决汇总
  2. 爬虫python的爬取步骤-python爬虫实战之爬取京东商城实例教程
  3. Java泛型的实现原理
  4. springbatch的reader,如何使用mybatis?使用MyBatisCursorItemReader可以完美解决
  5. flex datagrid 导出csv
  6. Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态...
  7. php ldap ad 登录验证,PHP中的LDAP身份验证 – 无需密码即可进行身份验证
  8. 用PPT制作 电子相册,进行抽奖准备.
  9. sip协议详解_基于SIP协议的媒体录音规范12个应用场景-SIPREC/RFC6341详解
  10. 计算机二级无纸化考试vb各题分值,2014年计算机二级考试《VB》无纸化机考操作题题库(1)...
  11. php ai格式生成png,AI怎么生成透明png? ai导出PNG格式透明背景图片的教程
  12. 966SEO学习网:火车头采集器使用教程(入门+高级)
  13. JavaScript模拟实现先进先出、先进后出效果
  14. c语言肤色检测,基于肤色的人脸检测
  15. android微信群聊功能,微信安卓内测更新,这个群聊功能等了8年
  16. 新网工李白——>李白你好(来抽大奖啦~)
  17. MySQLl快速入门笔记加基本查询练习
  18. 短信验证,图形验证码校验
  19. 统计多个wav文件的总音频时长
  20. PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练

热门文章

  1. 一种伪随机交织器的生成方法
  2. c语言找出公共子字符串,经典C语言面试题:求解最大公共子串
  3. cheetah的中文_cheetah是什么意思_cheetah的翻译_音标_读音_用法_例句_爱词霸在线词典...
  4. HDU 3665 Seaside
  5. OC本学习笔记Foundation框架NSString与NSMutableString
  6. C++学习之路,漫长而遥远
  7. hive处理日志,自定义inputformat
  8. sql中的遇到的有问题的
  9. COMET彗星(三)构建自己的COMET核心
  10. python元类单例_python面向对象和元类的理解