从百元百鸡这个简单问题看算法优化
来源:互联网 发布:国外注册域名 编辑:程序博客网 时间:2024/06/06 09:04
题目:100元买100只鸡,其中公鸡每只5元,母鸡每只3元,小鸡3只1元,问分别能买几只公鸡,几只母鸡,几只小鸡?请设计一个算法,用计算机计算。
算法二:我们可以通过Y=100-X-Y这条已知条件,减去一个循环,使算法复杂法降为N的平方,运算步骤减至几百步。
思路:设公鸡数为cock,母鸡数为hen,小鸡数为chick(cock、hen、chick为整数),遍历法解5cock+3hen+chick/3=100,且cock+hen+chick=100的方程。
算法一:这个是最笨的方法,根据cock、hen、chick可能的组合全部遍历,看哪些符合方程条件,运算步骤上万步。
#include <stdio.h>int main(){int cock,hen,chick;//定义变量公鸡,母鸡,小鸡for(cock=0;cock<=20;cock++)//公鸡可能的数量遍历 for(hen=0;hen<34;hen++)//母鸡可能的数量遍历 for(chick=0;chick<100;chick=chick+3)//小鸡可能的数量遍历 {if((cock+hen+chick==100)&&(cock*5+hen*3+chick/3==100))//符合题2要求后输出 printf("公鸡%d只,母鸡%d只,小鸡%d只\n",cock,hen,chick);}return 0;}
算法二:我们可以通过Y=100-X-Y这条已知条件,减去一个循环,使算法复杂法降为N的平方,运算步骤减至几百步。
#include <stdio.h>int main(){int cock,hen,chick;//定义变量公鸡,母鸡,小鸡for(cock=0;cock<=20;cock++)//公鸡可能的数量遍历 for(chick=0;chick<=100-cock;chick=chick+3)//小鸡数是3的倍数且不可能大于100-公鸡数 {hen=100-cock-chick;//母鸡数是100-公鸡-小鸡数 if(cock*5+hen*3+chick/3==100)//符合题2要求后输出 printf("公鸡%d只,母鸡%d只,小鸡%d只\n",cock,hen,chick);}return 0;}
算法三:设法一个循环解决问题,通过5cock+3hen+chick/3=100得出15cock+9hen+chick=300,再因chick=100-cock-hen,得出15cock+9hen+(100-cock-hen)=300,进而得出14cock+8hen=200再得出7cock+4hen=100(x和y都是整数)。通过先用数学方法的简化,运算步骤减至几十步。
#include <stdio.h>int main(){int cock,hen,chick;//定义变量公鸡,母鸡,小鸡for(cock=0;cock<15;cock++)//根据7cock+4hen=100,得出cock小于15 if((100-cock*7)%4==0)//此条表示7cock+4hen成立且cock和hen都是整数,符合条件 {hen=(100-cock*7)/4;chick=100-cock-hen;printf("公鸡%d只,母鸡%d只,小鸡%d只\n",cock,hen,chick);}return 0;}
1 0
- 从百元百鸡这个简单问题看算法优化
- 百元百鸡问题
- 百鸡百元问题?天啊
- 从“求最大连续和问题”看算法优化
- 从一个简单查找问题看算法的魅力
- 百元百鸡问题和歌德巴赫猜想
- 从一个问题的多个算法看算法的优化
- 从一道简单的题看算法优化 ZOJ PAT Course List for Student
- 从最大子段和问题看算法的优化问题
- 从最大子段和问题看算法的优化问题
- 从最大子段和问题看算法的优化问题
- 从最大子段和问题看算法的优化问题
- 百元百鸡一层循环
- 百元百鸡 代码 原理
- 百元买百鸡算法
- java小程序之百元百鸡
- java 百元百鸡 分数的输入
- 百元百鸡问题(自定义三鸡价格)【涉及java中分数的输入】
- UnrealEngine4初始化流程
- Eclipse使用技巧
- 简单socket套接字编程,第一试
- 数据结构基础 排序算法(二) 概念篇
- 黑马程序员——多线程技术
- 从百元百鸡这个简单问题看算法优化
- 可配置的DAO设计模式
- 虚幻引擎网络架构
- 双向链表的实现---数据结构学习(三)
- 傅立叶变换(一)
- 解决Android sdk manager 更新缓慢的方法
- 平面设计入门之Mac OS photoshop安装
- UVA140 ——bandwidth(搜索)
- UE4 框架