C语言 “百鸡问题”最优解
“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
问题分析
cocks,hens,chicks;//公鸡、母鸡、小鸡
设公鸡为x,母鸡为y,小鸡为z,有以下关系
x+y+z=100,//根据百鸡的数目,得到的数学表达式
5x+3y+z/3=100,//根据百钱的数目,得到的数学表达式
下面再看看x,y,z的取值范围。
由于只有100文钱,
则5x<100 ===> 0<x<20,
同理 3y<100 ===> 0<y<33.333,
那么z=100-x-y,
好,现在我们已经分析清楚了,下面直接上代码了。
#include <stdio.h>
main( )
{int cocks,hens,chicks;//公鸡、母鸡、小鸡
cocks=0;
while(cocks<=19){hens=0;while(hens<=33){chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)printf("%d,%d,%d\n",cocks,hens,chicks);hens=hens+1;}cocks=cocks+1;}
}
根据上述的调试结果,我们发现这样一个规律:
第一列公鸡数是4的倍数;
第二列母鸡数是以7为公差递减的;
第三列鸡崽数是3的倍数。
之前的代码:
x+y+z=100,//根据百鸡的数目,得到的数学表达式
5x+3y+z/3=100,//根据百钱的数目,得到的数学表达式
根据规律优化后
===========>
x+y+z=100 ①
5x+3y+z/3=100 ②
令②x3-① 可得
7x+4y=100
设x=4n,
则y=(100-28n)/4,即y=25-7n
所以z=75+3n
观察第一次调试结果,x的取值范围是[0,12],===>n的取值范围是[0,3]
再上代码,这是优化后的“最优解”哦:
#include <stdio.h>
main( )
{ int cocks,hens,chicks;//公鸡、母鸡、小鸡for(int n=0;n<=3;n++){ cocks=4*n;hens=25-7*n;chicks=75+3*n;printf("%d,%d,%d\n",cocks,hens,chicks);}
}
简单不?简单的很呐!
数学是理科的“小王子”,这不是我第一次用数学知识解决编程问题了。类似的循环嵌套,哦,不,能够跟“数学问题”有关的,都可以用数学知识来解决,多动手尝试,多动手去发现“美”!
C语言 “百鸡问题”最优解相关推荐
- c语言百鸡程序,百钱买百鸡C语言程序
#include void main() { int a=0,b,c; while(a<=20){ b=0; while(b<=33){ c=100-a-b; if(c%3==0& ...
- C语言——百钱百鸡问题分析(最优解法)
题目要求 一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡.母鸡.小鸡各多少只(要求每种鸡至少要买一只)? 思路解析 看到问题后第一反应一定是列出两个方程 设买公鸡 x1只 ...
- c语言 百钱买百鸡问题
c语言 百钱买百鸡问题 如题 话不多说了,直接上代码 如题 公元钱五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱 ...
- C语言试题七十六之请编写函实现百钱买百鸡
1. 题目 编写函数:中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各 ...
- 6.17 C语言练习(百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?)
[练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...
- C语言编程-百钱百鸡问题
百钱百鸡问题 问题描述 中国古代数学家张丘在他的<算经>中提出了一个著名的"百钱百鸡问题":一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡 ...
- 百钱买百鸡(C语言,枚举法)
养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 百钱买百鸡 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题, 该问题叙述如下: ...
- 【C、C++系列-10】C语言实现:百钱买百鸡问题
[C.C++系列-10]C语言实现:百钱买百鸡问题 1. 问题 百钱买百鸡问题:我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题.该问题叙述如下:鸡 ...
- C语言学习:百钱买百鸡问题详解(附源码)
问题: 中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题":鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? 代码: ...
- C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。
C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...
最新文章
- 实例讲解-单向列表的实现(1)
- 如何提高营销型网站与搜索引擎之间的信任度?
- linux crontab环境变量,Linux下crontab内环境变量与Shell环境变量的关系【转】
- research button control usage in WebIDE
- 【二叉树】剑指offer:二叉树中序遍历的下一个节点
- 机器学习笔记之二十一——基于统计的中文分词方法
- Linux du命令详解
- 分享下Python从业者的生存现状,告诉你一般程序员真实工资
- Java面试题:单核CPU支持多线程吗?
- redis集群报错:(error) MOVED 11469 192.168.163.249:7002
- 关于我想写个脚本,最后却搞了个桌面宠物这件事(一)
- 计算机语言与硬件相关,搞懂程序语言与计算机硬件的关系
- 【JavaScript】节点的常用属性和方法
- js取服务器系统时间,JS中new Date()用法及获取服务器时间
- GPS从入门到放弃(七) --- GPS卫星位置解算
- Matlab实现伪彩色处理:灰度图像转换为彩色图像
- echarts全国地图资源,省份名称居中
- Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters-翻译
- windows server 2012中配置扩展文件服务器之实现,Wins 2012中实现扩展文件服务器的7个步骤...
- 3d量测怎么学距离_3D游戏角色建模怎么学?
热门文章
- 获取火山无水印视频方法
- 【C语言】C语言实现泛型编程
- http-server基本使用
- win10系统升级后Auto CAD2008过期解决办法
- 兄弟Brother DCP-7025 激光打印机驱动
- 如何通过短视频平台实现高效裂变?小魔推同城流量推广了解一下
- inter uhd graphics630显卡驱动_极为全面的!从零开始的!小白都能看懂的!硬件科普#4 显卡选择篇...
- 打印1000张大概多少钱,打印费多少钱一张
- matlab环境下图像分形维数的计算,MATLAB环境下图像分形维数的计算_杨书申
- mysql数据库默认管理员是_数据库管理员密码的设置