演算法訓練 猴子分蘋果 C C

2021-10-03 09:22:05 字數 754 閱讀 9173

秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果。第二天,這些猴子來到山洞,把剩下的蘋果分成n分,巧了,還是剩下了m個。問,原來這些猴子至少採了多少個蘋果。

兩個整數,n m

乙個整數,表示原來蘋果的數目

5 10設蘋果的總數為x,向里新增(n-1)*m個蘋果,這時,蘋果能被每乙個猴子均分。

第乙個猴子分蘋果的總數:x 拿走 x+(n-1)*m /n 個蘋果

第二個猴子分蘋果的總數:(x+(n-1)m) (n-1) /n 拿走(x+(n-1)*m)(n-1)/n^2 個蘋果

第三個猴子分蘋果的總數:(x+(n-1)m) (n-1)^2 /n 拿走(x+(n-1)*m)(n-1) 2/n3 個蘋果

…最後乙隻猴子拿走(x+(n-1)*m)(n-1)(n-1)/nn

最後還分配一次 是 (x+(n-1)*m)(n-1) (n)/n(n+1)

結果相除一定是乙個常數,因為 (n-1)n與n(n+1)是永遠也無法除成整數的,說明

x+(n-1)*m與n(n+1)是能夠整除的。題目中說的是至少,這時我們不妨設他們整除的結果為1,求解便得:x=n(n+1) –(n-1)*m

# include# includeint main()

演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...

演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...

演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...