“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
问题分析
cocks,hens,chicks;//公鸡、母鸡、小鸡
设公鸡为x,母鸡为y,小鸡为z,有以下关系

  1.    x+y+z=100,//根据百鸡的数目,得到的数学表达式
    
  2.   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的倍数。
之前的代码:

  1.    x+y+z=100,//根据百鸡的数目,得到的数学表达式
    
  2. 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语言 “百鸡问题”最优解相关推荐

  1. 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& ...

  2. C语言——百钱百鸡问题分析(最优解法)

    题目要求 一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡.母鸡.小鸡各多少只(要求每种鸡至少要买一只)? 思路解析 看到问题后第一反应一定是列出两个方程 设买公鸡 x1只 ...

  3. c语言 百钱买百鸡问题

    c语言 百钱买百鸡问题 如题 话不多说了,直接上代码 如题 公元钱五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱 ...

  4. C语言试题七十六之请编写函实现百钱买百鸡

    1. 题目 编写函数:中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各 ...

  5. 6.17 C语言练习(百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?)

    [练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...

  6. C语言编程-百钱百鸡问题

    百钱百鸡问题 问题描述 中国古代数学家张丘在他的<算经>中提出了一个著名的"百钱百鸡问题":一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡 ...

  7. 百钱买百鸡(C语言,枚举法)

    养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 百钱买百鸡 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题, 该问题叙述如下: ...

  8. 【C、C++系列-10】C语言实现:百钱买百鸡问题

    [C.C++系列-10]C语言实现:百钱买百鸡问题 1. 问题 百钱买百鸡问题:我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题.该问题叙述如下:鸡 ...

  9. C语言学习:百钱买百鸡问题详解(附源码)

    问题: 中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题":鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? 代码: ...

  10. C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。

    C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...

最新文章

  1. 实例讲解-单向列表的实现(1)
  2. 如何提高营销型网站与搜索引擎之间的信任度?
  3. linux crontab环境变量,Linux下crontab内环境变量与Shell环境变量的关系【转】
  4. research button control usage in WebIDE
  5. 【二叉树】剑指offer:二叉树中序遍历的下一个节点
  6. 机器学习笔记之二十一——基于统计的中文分词方法
  7. Linux du命令详解
  8. 分享下Python从业者的生存现状,告诉你一般程序员真实工资
  9. Java面试题:单核CPU支持多线程吗?
  10. redis集群报错:(error) MOVED 11469 192.168.163.249:7002
  11. 关于我想写个脚本,最后却搞了个桌面宠物这件事(一)
  12. 计算机语言与硬件相关,搞懂程序语言与计算机硬件的关系
  13. 【JavaScript】节点的常用属性和方法
  14. js取服务器系统时间,JS中new Date()用法及获取服务器时间
  15. GPS从入门到放弃(七) --- GPS卫星位置解算
  16. Matlab实现伪彩色处理:灰度图像转换为彩色图像
  17. echarts全国地图资源,省份名称居中
  18. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters-翻译
  19. windows server 2012中配置扩展文件服务器之实现,Wins 2012中实现扩展文件服务器的7个步骤...
  20. 3d量测怎么学距离_3D游戏角色建模怎么学?

热门文章

  1. 获取火山无水印视频方法
  2. 【C语言】C语言实现泛型编程
  3. http-server基本使用
  4. win10系统升级后Auto CAD2008过期解决办法
  5. 兄弟Brother DCP-7025 激光打印机驱动
  6. 如何通过短视频平台实现高效裂变?小魔推同城流量推广了解一下
  7. inter uhd graphics630显卡驱动_极为全面的!从零开始的!小白都能看懂的!硬件科普#4 显卡选择篇...
  8. 打印1000张大概多少钱,打印费多少钱一张
  9. matlab环境下图像分形维数的计算,MATLAB环境下图像分形维数的计算_杨书申
  10. mysql数据库默认管理员是_数据库管理员密码的设置