枚举法C语言三个马驮东西,【MagO第三期】经典枚举算法题:百钱买百鸡
原标题:【MagO第三期】经典枚举算法题:百钱买百鸡
01
历史故事
张邱建提出的百钱买百鸡问题:
山东临清的数学家——张邱建,约公元5世纪著名的大数学家。他将毕生的精力投入到算学研究之中,为数学的不断发展和完善,做出了重大贡献。
《张邱建算经》卷下第三十八题。文曰:“今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,凡百钱买鸡百只,问鸡翁、母、雏各几何?”在题中有三个未知数,却只有两个方程,为不定方程组。
张邱建对此题给出了三组答案:第一组:公鸡四、母鸡十八,小鸡七十八;第二组:公鸡八、母鸡十一,小鸡八十一;第三组:公鸡十二、母鸡四、小鸡八十四。
02
百钱买百鸡问题
公鸡每只5元,母鸡每只3元,三只小鸡1元,用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?
题目答案应为四组解:
公鸡有0 母鸡有25 小鸡有75
公鸡有4 母鸡有18 小鸡有78
公鸡有8 母鸡有11 小鸡有81
公鸡有12 母鸡有4 小鸡有84
题目链接地址:
https://oj.coding61.com/problem/%E6%9E%9A%E4%B8%BE-20
03
思路分析
假设公鸡、母鸡、小鸡数量分别为mj,gj和xj。根据百钱买百鸡的规则可以得到如下不定方程组。
(1)gj+mj+xj=100
(2)5*gj+3*mj+1*xj=100
由于“百钱”是定值,所以 mj,gj和xj有取值范围。5*gj<=100 ,则0<=gj<=20; 同理 0<=mj<=33;那么xj=100-gj-mj。
先敲定一个变量的值,再利用另外两个值循环,通过计算机来枚举所有的可能结果,这种方法称为枚举算法。
04
参考代码
05
“计算马的数量”
“计算马的数量”,是我们橙子OJ上的一个题目,本质上就是百钱买百鸡问题。
100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。
与上题类似,这里也需要解决一个三元一次方程组的问题。假设分别用i,j,k代表大马、中马、小马的数量,则列出方程组并确定未知数的取值范围如下。
(1)i+j+k=100
(2)3i+2j+k=100
其中0<=i<=33; 0<=j<=50; k=100-i-j
题目链接地址:
https://oj.coding61.com/problem/%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%8415
06
项目练习
通过上面两题,相信大家已经此类不定方程组枚举所有可能性(枚举算法)有了清楚的认识,对于类似题目,你能自己完成吗?橙子OJ上还有一个题目 “校门外的树”,也是枚举算法问题,赶紧试着完成吧!
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…,L都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
尝试一下,自己解题吧:
https://oj.coding61.com/problem/NOIP-P-2005-2
还是没有思路?那么可以看一下讲解视频吧:返回搜狐,查看更多
责任编辑:
枚举法C语言三个马驮东西,【MagO第三期】经典枚举算法题:百钱买百鸡相关推荐
- 百钱买百鸡(C语言,枚举法)
养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 百钱买百鸡 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题, 该问题叙述如下: ...
- python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...
[填空题]表达式 'apple.peach,banana,pear'.find('ppp') 的值为 ________ . [填空题]已知 x = '123' 和 y = '456' ,那么表达式 x ...
- 6.17 C语言练习(百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?)
[练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...
- 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...
[程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...
- 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?
百钱买百鸡问题.母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只? 1 #include<stdio.h>2 int main()3 {4 int ...
- 【C、C++系列-10】C语言实现:百钱买百鸡问题
[C.C++系列-10]C语言实现:百钱买百鸡问题 1. 问题 百钱买百鸡问题:我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题.该问题叙述如下:鸡 ...
- 枚举算法2——百钱买百鸡
百钱买百鸡 共计3元一只,母鸡5元一只,小鸡1元三只,一百元买一百只鸡.请写出公鸡.母鸡.小鸡的数目. [分析] 假设公鸡数为cock.母鸡数为hen.小鸡数为chick,得到两个关系,cock+he ...
- c语言 百钱买百鸡问题
c语言 百钱买百鸡问题 如题 话不多说了,直接上代码 如题 公元钱五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱 ...
- C语言试题七十六之请编写函实现百钱买百鸡
1. 题目 编写函数:中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各 ...
最新文章
- 关于文献中二代测序数据下载(NCBI)的问题
- lnmp架构——nginx的负载均衡
- mysql ibdata作用_mysql data文件夹下ibdata1 文件作用
- .NET框架类库中的命名空间
- 统计学习方法笔记(李航)———第三章(k近邻法)
- 计算机字体颜色太浅,win10 windows界面字体颜色太淡如何解决
- 01 安装STEP7软件和USB驱动
- oracle和mysql建表语句的区别_mysql和oracle建表语句的区别
- WMV格式如何转为高清无损MP4视频格式
- “杀京东”京东价格监控软件项目开发日志一
- POJ 3626 Mud Puddles (BFS)
- Unreal 4 更改Engine位置
- 聚观早报 | 苹果2024年放弃高通;腾讯回应进军类 ChatGPT
- 最新文本转语音的接口(免费),百度语音作废
- 中登托管行结算路径_在非根路径上托管Next.JS应用
- 【开发随记】【提效】工作习惯那些事系列之一——To-Do List
- 求质数(Prime Number 素数)的方法——厄拉多塞筛法
- ChatGPT 大规模封号,并停止注册!
- 记一次mysql5.7的新特性derived_merge的坑
- 输入一行字符(输入以字符#结束),分别统计其中字母和数字字符的个数。