- 這是最簡單的一種算法,其依賴於計算機的強大計算能力,來窮盡每一種可能的情況,從而達到求解問題的目的,效率並不高,但是適合用於一些沒有明顯規律可循的場合
基本思想
-
就是從所有可能的情況中搜索正確的答案,步驟如下
- 對於一種可能的情況,計算其結果
- 判斷結果是否滿足要求,如果不滿足就執行第一步來搜索下一個可能的情況,如果滿足要求,則表示尋找到一個可能的答案
- 使用窮舉算法時,需要明確問題的答案範圍,這樣纔可以在指定範圍內搜索答案,指定範圍之後,就可以使用循環語句和判斷條件逐步驗證答案的正確性,從而得到需要的正確答案
- 其實說這麼多,就是用循環去遍歷所有可能出現的結果
雞兔同籠問題
- 上有三十五頭,下有九十四足,問雞兔幾何?
-
一共有三十五隻頭,那麼雞最多有三十五隻,剩下的就是兔的個數,所以核心的代碼是很簡單的
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); } } }