Algorithm学习笔记 --- 百钱买百鸡问题(枚举练习)
来源:互联网 发布:上海二手房成交数据 编辑:程序博客网 时间:2024/04/29 18:57
百钱买百鸡问题:有一个人有一百块钱,打算买一百只鸡。到市场一看,公鸡一只3元,母鸡一只5元,小鸡3只1元,试求用100元买100只鸡,各为多少才合适?
可以分析:
解法一:
根据题意我们可以得到方程组:
3X + 5Y + Z/3 = 100;
代码如下:
X + Y + Z = 100;
(100 > X,Y,Z > 0, Z%3 == 0),根据这两个公式,我们可以写出最为简单的代码,一一列举所有解进行枚举
#include <iostream>using namespace std;int main(){ int x,y,z; for(x=0;x<100;x++) { for(y=0;y<100;y++) { for(z=0;z<100;z+=3) { if(x+y+z==100 && 3*x+5*y+z/3==100) { cout<<x<<" "<<y<<" "<<z<<endl; } } } } return 0;}
解法二:
另外我们根据方程特点,可以消去一个未知数,得到下面
4X + 7Y = 100;
代码如下:
X + Y + Z = 100;
(X,Y,Z > 0, Z%3 == 0),=>> 0 <= x < = 25因此代码可以优化为下面这样子:
#include <iostream>using namespace std;int main(){ int x,y,z; for(x=0;x<25;x++) { y=100-4*x; if(y%7==0 && y>=0) { y/=7; z=100-x-y; if(z%3==0 && 3*x+5*y+z/3==100) { cout<<x<<" "<<y<<" "<<z<<endl; } } } return 0;}
0 0
- Algorithm学习笔记 --- 百钱买百鸡问题(枚举练习)
- Algorithm学习笔记 --- 简单枚举除法
- Algorithm学习笔记 --- 最大乘积简单枚举
- Algorithm学习笔记 --- 分数拆分简单枚举
- Algorithm学习笔记 --- 迷宫问题
- Algorithm学习笔记 --- 连号区间数(枚举)
- (Basic algorithm学习笔记)《基础算法三》- 枚举
- Algorithm学习笔记 --- 约瑟夫问题NO.2
- Algorithm学习笔记 --- 小球移动问题
- Algorithm学习笔记 --- 3n+1问题
- Algorithm学习笔记 --- 幂集问题
- Algorithm学习笔记 --- 抽签
- Algorithm学习笔记 --- Hangover
- Algorithm学习笔记 --- DNAsorting
- Algorithm学习笔记 --- 滑雪
- Algorithm学习笔记 --- 汉诺塔
- Algorithm学习笔记 --- Billboard
- Algorithm学习笔记 --- 铁轨(火车重排问题)
- 杭电 1276 士兵队列训练问题
- 设计模式之备忘录
- 关于蓝牙接收数据的解决方案
- jquery源码分析(2) jQuery对象的一些方法和属性 1
- 杭电2050折线分割平面
- Algorithm学习笔记 --- 百钱买百鸡问题(枚举练习)
- 点球大战 2539
- 挺有意思的文章。。。
- PostgreSQL 和Greenplum 区别
- 40-Service学习第一发Service的生命周期
- AIX下VIM的安装
- UISlider和UIScreenEdgePanGestureRecognizer和简单运用,包括滑动时颜色变化,滑动按钮以及Slider按钮颜色设置
- 杭电2029 Palindromes _easy version
- android反编译工具总结