列舉演算法3 五猴分桃

2021-10-02 12:28:01 字數 637 閱讀 5388

五猴分桃:五隻猴子一起摘了一堆桃子,因為太累了決定先睡一覺再分。一會其中乙個猴子先過來將桃子分成五分,剩了乙個桃子就給吃了,並拿走其中乙份。

一會第2只猴子過來。又將剩下的桃子分成5份,發現多了乙個桃子給吃了,並拿走其中乙份,接著來的第3只、4只、5只猴子都是這樣做的,它們一共摘了多少桃子,第5只猴子走後剩多少。

【分析】

桃子總數s0,五個猴子分別拿走s1,s2,s3,s4,s5:

s0=5*s1+1

4*s1=5*s2+1

4*s2=5*s3+1

4*s3=5*s4+1

4*s4=5*s5+1

我們可以列舉桃子總數,s0,從s0=1開始列舉。

code:

#include#include void main()

, i;

for (s[5] = 1;; s[5]++)

for (i = 1; i < 6; i++)

printf("第%d個猴子將桃子分為5堆,每堆%4d個桃子.\n", i, s[i]);

printf("共摘了%d個桃子, 剩下%d個桃子.\n", s[0], s[5] * 4);

system("pause");

}

結果:

五猴分桃python 五猴分桃問題

五隻猴子分一堆桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆 第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆 其他幾隻猴子也都是這樣分的。問 這堆桃至少有多少個?先給這堆桃子加上4個,設此...

五大基礎演算法 列舉

1 定義 按照問題的要求,一一枚舉所有有可能的解,然後進行判斷,若符合要求則採納這個解,不符合就拋棄。2 演算法實現 第一部分 迴圈部分 利用迴圈把所有有可能的解,一一枚舉出來。需注意不能遺漏任何乙個解,也要避免重複。要考慮如何設計迴圈變數 初值 終值和遞增值。迴圈變數是否參與檢驗。為了提高解題效率...

五大常用演算法 例項列舉

五大常用演算法 例項列舉 1.分治法 話說遞迴與hanoi塔 二分法求方程近似解 用c 實現合併排序 求最大值和最小值的分治演算法 2.動態規劃法 動態規劃求0 1揹包問題 最長公共子串問題的實現 用動態規劃實現飛彈攔截 最大化投資回報問題的實現 3.貪心演算法 最小生成樹之prim演算法 最小生成...