算法与数据结构之枚举算法

1.枚举算法的核心思想:算法

将全部问题的可能性一一列举。

2.枚举算法的应用:spa

《百钱找百鸡》

问题:
公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡code

问公鸡,母鸡,小鸡各多少?

3.解决问题的核心思想:对象

以3种鸡的个数为枚举对象(gj,mj,xj)

4.枚举条件:
gj+mj+xj=100;[个数之和]图片

gj5+mj3+xj/3=100;[用钱之和]get

xj%3==0;[小鸡个数必定能够取余3,由于xj个数和购买花的钱必须为整数]it

5.代码实现:class

int main()
{
    //过程:分别枚举公鸡,母鸡的个数范围知足条件进行输出。
    int x, y, z;//分别表示公鸡,母鸡和小鸡的个数
    for (x = 0; x <= 20; x++)//公鸡个数范围:0-20只,用100元除以每只公鸡的钱
    {
        for (y = 0; y <= 33; y++)//母鸡个数范围:0-33只,用100元除以每只母鸡的钱
        {
            z = 100 - x - y;//z表示小鸡的个数
            if (z % 3 == 0 && x * 5 + y * 3 + z / 3 == 100)
                printf("公鸡:%d,母鸡:%d,小鸡:%d\n", x, y, z);
        }
    }
    getch();
    return 0;
}

6.代码实现效果图:
图片描述im

相关文章
相关标签/搜索