題目:
有abcde五人夜間到河邊捕魚,捕完魚後五人在河邊睡著.
天亮後a先醒來,將所捕魚平均分偉五份,結果餘一條,將餘的一條扔掉,帶走自己的一堆.b醒來將餘下的四堆又分為五份,也餘一條,同樣仍掉,也帶走自己的一堆.c、d、e醒來後也如此,問他們這天晚上至少捕到多少條魚?
廢話不多說,分析:
首先我寫了這樣乙個**,
//**************************錯誤示範
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace @catch
return cutfish(n - 1) * 5 + 1;
}// public int count = 1;
static void main(string args)}}
//這個結果是 3906 //
//但是看見網上的討論 最後乙個人起來分魚的時候不一定是每人一條,
最後總結一下:
這題目沒有給定任何魚的個數,那麼個數可能會有很多種,要求至少,所以在滿足上一次 分魚過後的數目 減掉 4/5 然後 對5 取餘 餘1(上文講取餘等於0 是因為前提還減掉1 這裡沒有說減掉1哦 注意);
那麼**如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace @catch
if (n * 5 / 4 % 5 == 0) //下次的魚個數是否滿足 算出上次以後能夠滿足分魚條件
return false; //不滿足的話就返回false 說明這個 "下次分魚數目" 假設不成立
}static void main(string args)}}
}//最後正確結果3121
///第一次寫,,希望大家有什麼意見建議,說出來,反正我又不會高興接納的!!!!!! 開個玩笑,一定接納!!
1 遞迴解決分魚問題
問題描述 a b c d e這5個人合夥夜間捕魚,凌晨時都已經疲憊不堪,於是各自在河邊的樹叢中找地方睡著了。第二天日上三竿時,a第乙個醒來,他將魚平分為5份,把多餘的一條扔回河中,然後拿著自己的乙份回家去了 b第二個醒來,但不知道a已經拿走了乙份魚,於是他將剩下的魚平分為5份,扔掉多餘的一條,然後只...
C語言 遞迴解決分魚問題。
a b c d e五個人在某天夜裡合夥去捕魚,到凌晨時疲憊不堪,於是各自找地方睡覺。第二天a醒來,他將所有的魚分成5份,把多餘的一條魚扔掉,拿走自己的乙份。b醒來,也將剩下的魚分為5份,把多餘的一條扔掉,拿走自己的乙份。c d e 也同樣,分別醒來後,也將剩下的魚分為5份,把多餘的一條扔掉,拿走自己...
遞迴解決分魚問題 c語言
問題描述 a,b,c,d,e這5個人合夥夜間捕魚,凌晨時都已經疲憊不堪,於是各自在河邊的樹叢中找地方睡著了。第二天日上三竿時,a,第乙個醒來,他將魚平分為5份,把多餘的一條扔回河中,然後拿著自己的乙份回家去了 b第二個醒來,但不知道a已經拿走了乙份魚,於是他將剩下的魚平分為5份,扔掉多餘的乙份,然後...