解决百钱买百鸡问题,某人有100元钱,要买100只鸡,公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只,问可买到的公鸡,母鸡,小鸡各为多少只,请把所有的可能性打印出来。

一,普通解法
思路:我们设a,b,c分别代表公鸡,母鸡以及小鸡。
由题可得到a+b+c=100和5a+3b+1/3*c=100这两个关系式,以及a,b,c的取值范围。下面是相关代码。
然后大概计算了660次。

for (int a = 0; a < (100/5); a++){for (int b = 0; b < (100/3); b++){int c = 100 - a - b;if (c%3==0&& 5*a+3*b+c/3==100){Console.WriteLine("公鸡{0}只,母鸡{1},小鸡{2}", a, b,c);}}}

二,最优解法
思路:
1.首先我们可以得到各鸡的
数量关系式:a+b+c=100。 (1)
以及钱的关系式:5a+3b+1/3*c=100 ;(2)
2.根据各鸡的数量关系式我们可以得到各鸡得数量范围:
0<=a<=20;
0<=b<=100/3,由于鸡的数量都是大于等于0的整数,所以0<=b<=33
根据数量关系式a+b+c=100,得47<=c<=100;

3.我们用3*(2) -(1)化简得:b=25- 7/4*a,由于鸡的数量都是大于等于0的整数,所以a必须是4得倍数。假如num是一个大于等于0的整数则a可表示为4num;则b可表示为25-7num,c可表示为75+3num;
4.我们根据0<=a<=20;得到num得范围为0<=num<=5;
根据0<=b<=33;得到num得范围为0<=num<=3;
根据0<=b<=33;得到num得范围为0<=num<=8;

所以num的最终范围为0<=num<=3;
然后用for循环遍历即可得到所有可能结果。

  for (int num = 0; num <= 3; num++){Console.WriteLine("公鸡{0}只,母鸡{1},小鸡{2}", 4 * num, 25 - 7 * num, 75 + 3 * num);}

然后这种方法大概计算了4次。

百钱买百鸡问题的最优解法相关推荐

  1. 算法学习之百钱买百鸡

    百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好 ...

  2. python百钱买百鸡问题算法_百钱买百鸡问题的伪代码算法?

    不同的编程语言,对于判断语句,循环语句等的写法是不一样的.但对于同一问题,我们只关心算法,于是就提出了伪代码,统一一下判断语句怎么写,循环语句怎么写,这样无论程序员学的是 C++,还是 JAVA,还是 ...

  3. java白钱买白_java实现百钱买白鸡

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

  4. 经典算法题每日演练——第一题 百钱买百鸡

    经典算法题每日演练--第一题 百钱买百鸡 原文:经典算法题每日演练--第一题 百钱买百鸡 百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, ...

  5. python百钱买百鸡-百钱买百鸡的Python实现

    "百钱买百鸡"是一个很有历史的问题了,大意就是:小鸡半文一只,母鸡一文一只,公鸡二文一只,现有一百文钱,刚好买了一百只鸡,请问小鸡.母鸡与公鸡各有多少只? 如果假设小鸡.母鸡和公鸡 ...

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

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

  7. Console-算法[for]-穷举法:百钱买百鸡

    ylbtech-Arithmetic:Console-算法[for]-穷举法:百钱买百鸡 1.A,案例 -- ============================================= ...

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

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

  9. 百钱买白鸡与啤酒饮料

    第一题  标题:啤酒和饮料       啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元.       我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒.   ...

  10. python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...

    [填空题]表达式 'apple.peach,banana,pear'.find('ppp') 的值为 ________ . [填空题]已知 x = '123' 和 y = '456' ,那么表达式 x ...

最新文章

  1. 【搞openssl,看这篇就够了!】openssl1.1.1g编译(windows linux)
  2. idea 使用maven构建项目时,target bytecode version经常自动变化
  3. 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...
  4. python复合条件判断_Python的条件判断和循环
  5. SpringCloud Greenwich(四)注册中心之eureka、Zuul和 gateway网关配置
  6. 王元院士漫谈哥德巴赫猜想
  7. BugkuCTF-Reverse题Timer(阿里CTF)
  8. linux下smtp服务器搭建
  9. autosub字幕自动识别生成-最新windows配置方法
  10. 还记的 破坏之王 里面的 锁吗,锁住 断水流大师兄
  11. base64图片上传解析不了问题
  12. 掌上游戏机开发指南——GBA程序开发入门
  13. 厉害了!99行代码实现《冰雪奇缘》
  14. apache 安装与修改端口,修改默认页面,配置虚拟主机
  15. QPBOC交易流程详解--POS与卡片的数据交互进行分析
  16. java直接打印数组 结果输出[I@28d93b30
  17. 【数据结构】顺序存储——定义
  18. 阿里云 Aliplayer高级功能介绍(五):多语言
  19. QLearning和DQN
  20. 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)

热门文章

  1. php微信定位功能,JavaScript微信定位功能实现方法
  2. JS根据城市名称获取所在省份
  3. xps15u盘装linux,戴尔xps15系统重装图文教程
  4. 海森(hessian)矩阵
  5. mybatis传递pojo类学习
  6. 12张图读懂模电、数电必备的电路基础知识
  7. MatLab 计算开根号
  8. px和毫米的换算_px和mm换算(px相当于多少毫米)
  9. Clion调试STM单片机
  10. 互联网企业该如何进行风险管理