- 这是最简单的一种算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的,效率并不高,但是适合用于一些没有明显规律可循的场合
基本思想
-
就是从所有可能的情况中搜索正确的答案,步骤如下
- 对于一种可能的情况,计算其结果
- 判断结果是否满足要求,如果不满足就执行第一步来搜索下一个可能的情况,如果满足要求,则表示寻找到一个可能的答案
- 使用穷举算法时,需要明确问题的答案范围,这样才可以在指定范围内搜索答案,指定范围之后,就可以使用循环语句和判断条件逐步验证答案的正确性,从而得到需要的正确答案
- 其实说这么多,就是用循环去遍历所有可能出现的结果
鸡兔同笼问题
- 上有三十五头,下有九十四足,问鸡兔几何?
-
一共有三十五只头,那么鸡最多有三十五只,剩下的就是兔的个数,所以核心的代码是很简单的
private static void qiongJu(int head, int foot) { int rabbitCount = 0; for (int i = 0; i <= head; i++) { rabbitCount = head - i; if (rabbitCount*4 + i*2 == foot){ System.out.println("兔子:"+rabbitCount+" 鸡:"+i); } } }
韩信点兵
- 韩信知道部队人数大约1000人左右,具体数字不详,5人一组剩余1人,7个人一组还剩两个人,8个人一组还剩3个人,问这支部队有多少人?
-
1000人左右也就是小于2000,所以这个范围就确定了,然后剩下的就是if判断了
private static void hanxin() { for (int i = 0; i < 2000; i++) { if (i%5==1 && i%7==2 && i%8==3){ System.out.println(i); } } }