第一节 枚举
枚举又叫穷举,是程序设计中最常用的算法之一,是一种很*很暴力的算法。要说它的方法,就是没有方法——通过将所有可能的结果一一列举出来进行判断,获得想要的结果的方法。枚举算法的特点就是比较单纯,容易写出来程序,但是速度非常慢,只能用来解决小规模的问题。
常见的题型有很多,比如计算空缺算式或者是火柴棒问题,接下来我们来举例说明一道非常经典的题目,来体会一下枚举算法。
我国古代数学家章丘建在《算经》一书中提过一道数学问题:鸡翁一值钱五,鸡母一值钱散,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何。这就是经典的百钱百鸡问题。除了原书中使用的方程式之外,我们还可以使用枚举法来进行计算,代码如下:
1 |
|
在之前杭电的练习题中,我们也遇到过使用枚举算法的题目,hdu2010题的水仙花数就是。大家可以练习一下全排列的问题,练习一下枚举算法。