百钱白鸡问题
鸡翁一,值钱5;鸡母一,值钱3;鸡雏三,值钱1。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
- 首先判断题目:一百文钱买一百只鸡,公鸡5块钱一只,母鸡3元一只,小鸡一元3只。
- 两个固有条件“”100文钱“ 买 ”100只鸡”,满足则输出一次组合。
- 可以用穷举法依次判断是否满足固有条件。
- 代码如下:
#include<stdio.h>
int main()
{
int a,b,c; // abc分别为公鸡,母鸡,小鸡。
for (a = 0; a <= 20; a++) //根据公鸡5元判断最多20只
for (b = 0; b <= 33; b++) //根据母鸡5元判断最多20只
{
c = 100 - a - b; // 100只鸡去掉公母 为小鸡个数
if (c%3==0 && 5*a + 3*b +c/3 == 100) //固有条件
printf("鸡翁%d只,鸡母bai%d只,鸡雏%d只\n",a,b,c);
}
return 0;
}
穷举法:
穷举法又称列举法、bai枚举法,是蛮力策略du的具体体现,是一种简单zhi而直接地解决问题的方法。dao其基本思想是逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解,哪些应予排除。
穷举可作为某类问题时间性能的底限,用来衡量同样问题的更高效率的算法。
简单说:就是把所有符合条件的组合可能都尝试一遍,此算法需要花费的时间长。