百钱百鸡问题(C++枚举法)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目:
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;妈雏三,值钱 百钱买百鸡,翁、母、维各几何?
算法设计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)——百钱百鸡问题的多种解法(一重循环解决)
目录 写在前面: 从百钱百鸡问题说起 直接枚举(暴力破解) 开始优化(缩小枚举范围) 继续优化(二重循环) 最终优化(一重循环) 总结 写在后面 写在前面: 本文适合初学者学习,鉴于本人能力有限以及希 ...
- C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。
C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...
- 蛮力法 第1关:百钱百鸡问题
任务描述 本关任务:用蛮力法编程解决百钱百鸡问题. 百钱百鸡问题:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱百鸡问题":鸡翁一,值钱五:鸡母一,值钱三:鸡雏 ...
- java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...
1.逢7过 /* * 数据范围 1- 100 * 碰到能被7整除或者包含7都过 * */ public class MeetSeven { public static void main(String ...
- 百钱百鸡php穷举法,PHP经典题:百钱百鸡问题(穷举算法)
PHP经典题:百钱百鸡问题(穷举算法) 百钱百鸡问题: 已知:公鸡5元一只,母鸡3元一只,小鸡一元3只 现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只? --请考虑尽可能高效的方法 思路: 如果 ...
- 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc
多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...
- 儿时数学课上的“百钱百鸡”问题我又捡起来了
一 背景介绍 奶奶给了小花100大洋,让她去集市买鸡. 买鸡要求是:既要有公鸡(cock),也要有母鸡(hen),还要有小鸡(chick).三种鸡缺一不可,不然回家打屁屁. 市场的行情价是:公鸡5块大 ...
- #Java编程题-百钱百鸡
问题: 百钱百鸡问题.用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只). 自己的实现,没有什么数据结构,算法,求大神指点!! packa ...
最新文章
- 2020-10-29 PYTORCH与Tensorflow速查表
- 60. Permutation Sequence
- asp.net viewstate 数据过大 导致错误
- Vue 组件开发 - 数据输入框组件
- php 武汉海关对接_“双11”临近 海口海关全力备战跨境电商监管高峰
- mysql delete|删除 命令的注意点
- Python程序控制结构(二)循环结构:for in遍历循环,while无限循环,循环+else
- python 多线程 paramiko实现批量命令输入输出
- Oracle | 彻底的卸载干净oracle 11g
- layer在html中的data写法,layerdate.html
- 专业运动耳机哪个品牌好?运动蓝牙耳机推荐
- request常用方法
- 第2章第27节:英文排版技巧:大间距与大行距的应用 [PowerPoint精美幻灯片实战教程]
- 可以有效改进项目管理技能的十个过程
- 开源ERP系统weberp的安装与配置
- idea读取文件时的路径问题
- 基于CTP的程序化交易系统开发
- 离线安装mariadb
- Batch入门-批处理文件
- 信息安全-七:可信计算机系统评估准则
热门文章
- Carsim与Simulink联仿Carsim找不到Matlab错误的解决方案,此前装过多个Matlab版本出现该问题可以尝试此方法
- 通过VM虚拟机安装linux系统(centos版本)
- ubuntu E: Unable to locate package xxxxxxx解决办法
- 达梦数据库 find_in_set 函数适配
- 气体传感器的市场状况及主要厂商
- php卡片式,卡片式设计的优点和不适用性
- signature=cdae83b1c2034e2244a378f624349dfb,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
- 【最新款】编程语言2月排行榜结果出炉:最难的语言实至名归!
- C语言《程序设计基础课程设计》题库
- 使用全局阈值进行灰度图像二值化