比较“笨”的枚举算法(一)

Posted on 2018-10-24 22:29  时光top  阅读(211)  评论(0编辑  收藏  举报

枚举即一一列举。

一、枚举算法的思想

  将问题所有的可能答案一一列举,然后根据实际情况选择合适而丢弃不合适的。在c语言中,枚举算法一般使用while循环实现。

二、实例演练

  (1)“百钱买百鸡”问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?

  代码实现:

#include "stdio.h"
int main()
{
    int x, y, z;
    for (x = 0; x <= 20;x++)
    {
        for (y = 0; y <= 33;y++)
        {
            z = 100 - x - y;
            if (z % 3 == 0 && x * 5 + y * 3 + z / 3 == 100)
            {
                printf("公鸡:%d,母鸡:%d,小鸡:%d\n", x, y, z);
            }
        }
    }
    system("pause");
    return 0;
}

  实现结果:

    

 三、枚举法的使用

  枚举虽有点“笨”,很多人称其为“暴力算法”,但是当遇到问题时最先就是想到它。枚举算法的使用时,关键在于选择合适的对象,对对象进行考察,选取判断标准,从而解决问题。

 

 

  

Copyright © 2024 时光top
Powered by .NET 8.0 on Kubernetes