提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

题目:

中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;妈雏三,值钱 百钱买百鸡,翁、母、维各几何?

算法设计1:

    通过对问题的理解,读者可能会想到列出两个三元一次方程,去解这个不定解方程,就能找出问题的解。这确实是一种办法,但现在要用“懒惰”的枚举策略进行算法设计。
     设x,y,z分别为公鸡、母鸡、小鸡的数量。
尝试范围:由题意给定共100钱要买百鸡 若全买公鸡最多买100/5=20只,显然x的取值范围在1~20之间;同理,y的取值范围在1~33之间,z的取值范围在1~100之间。
约束条件:x+y+x=100且5x+3y+x/3=100。

代码:

算法一:

#include<stdio.h>
int main()
{/**********  Begin  **********/
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
for(z=0;z<=100;z++)
if(100==x+y+z && 100==5*x+3*y+z/3.0)printf("公鸡有%d只,母鸡有%d只,小鸡有%d只\n",x,y,z);/**********  End  **********/
}

结果:

算法分析:以上算法需要枚举尝试20×34×100=68000次。算法效率显然太低。
算法设计2:

    在公鸡(x)、母鸡(y)的数量确定后,小鸡的数量x就固定为100-x-y,无须再进行枚举了,此时约束条件只有一个:5x+3y+z/3=100。

算法二:

#include<stdio.h>
int main()
{/**********  Begin  **********/
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
{z=100-x-y;
if(100==x+y+z && 100==5*x+3*y+z/3.0)printf("公鸡有%d只,母鸡有%d只,小鸡有%d只\n",x,y,z);
}/**********  End  **********/
}

结果:


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了百钱百鸡问题(C++枚举法)。

百钱百鸡问题(C++枚举法)相关推荐

  1. 算法思想(枚举)——百钱百鸡+生理周期+完美立方+熄灯问题+讨厌的青蛙

    枚举的思想其实时日常生活中提取的一种智慧 ^------^ 枚举的思想在生活中有着非常广泛的应用        在对事物进行归纳推理时,会逐一考察某个事物的所有可能的情况,并且逐一进行检验,这就是枚举 ...

  2. 算法之枚举及其优化(1)——百钱百鸡问题的多种解法(一重循环解决)

    目录 写在前面: 从百钱百鸡问题说起 直接枚举(暴力破解) 开始优化(缩小枚举范围) 继续优化(二重循环) 最终优化(一重循环) 总结 写在后面 写在前面: 本文适合初学者学习,鉴于本人能力有限以及希 ...

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

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

  4. 蛮力法 第1关:百钱百鸡问题

    任务描述 本关任务:用蛮力法编程解决百钱百鸡问题. 百钱百鸡问题:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱百鸡问题":鸡翁一,值钱五:鸡母一,值钱三:鸡雏 ...

  5. java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...

    1.逢7过 /* * 数据范围 1- 100 * 碰到能被7整除或者包含7都过 * */ public class MeetSeven { public static void main(String ...

  6. 百钱百鸡php穷举法,PHP经典题:百钱百鸡问题(穷举算法)

    PHP经典题:百钱百鸡问题(穷举算法) 百钱百鸡问题: 已知:公鸡5元一只,母鸡3元一只,小鸡一元3只 现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只? --请考虑尽可能高效的方法 思路: 如果 ...

  7. 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc

    多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...

  8. 儿时数学课上的“百钱百鸡”问题我又捡起来了

    一 背景介绍 奶奶给了小花100大洋,让她去集市买鸡. 买鸡要求是:既要有公鸡(cock),也要有母鸡(hen),还要有小鸡(chick).三种鸡缺一不可,不然回家打屁屁. 市场的行情价是:公鸡5块大 ...

  9. #Java编程题-百钱百鸡

    问题: 百钱百鸡问题.用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只). 自己的实现,没有什么数据结构,算法,求大神指点!! packa ...

最新文章

  1. 2020-10-29 PYTORCH与Tensorflow速查表
  2. 60. Permutation Sequence
  3. asp.net viewstate 数据过大 导致错误
  4. Vue 组件开发 - 数据输入框组件
  5. php 武汉海关对接_“双11”临近 海口海关全力备战跨境电商监管高峰
  6. mysql delete|删除 命令的注意点
  7. Python程序控制结构(二)循环结构:for in遍历循环,while无限循环,循环+else
  8. python 多线程 paramiko实现批量命令输入输出
  9. Oracle | 彻底的卸载干净oracle 11g
  10. layer在html中的data写法,layerdate.html
  11. 专业运动耳机哪个品牌好?运动蓝牙耳机推荐
  12. request常用方法
  13. 第2章第27节:英文排版技巧:大间距与大行距的应用 [PowerPoint精美幻灯片实战教程]
  14. 可以有效改进项目管理技能的十个过程
  15. 开源ERP系统weberp的安装与配置
  16. idea读取文件时的路径问题
  17. 基于CTP的程序化交易系统开发
  18. 离线安装mariadb
  19. Batch入门-批处理文件
  20. 信息安全-七:可信计算机系统评估准则

热门文章

  1. Carsim与Simulink联仿Carsim找不到Matlab错误的解决方案,此前装过多个Matlab版本出现该问题可以尝试此方法
  2. 通过VM虚拟机安装linux系统(centos版本)
  3. ubuntu E: Unable to locate package xxxxxxx解决办法
  4. 达梦数据库 find_in_set 函数适配
  5. 气体传感器的市场状况及主要厂商
  6. php卡片式,卡片式设计的优点和不适用性
  7. signature=cdae83b1c2034e2244a378f624349dfb,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  8. 【最新款】编程语言2月排行榜结果出炉:最难的语言实至名归!
  9. C语言《程序设计基础课程设计》题库
  10. 使用全局阈值进行灰度图像二值化