A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。
日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,
也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿
走鱼。问他们合伙至少捕了多少条鱼?
日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,
也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿
走鱼。问他们合伙至少捕了多少条鱼?
(思路:定鱼的总数为X,则X可以按照题目的要求进行五次分配:X-1后可被5整除,余下的鱼为4*(X-1)/5。
若X满足上述要求,则X就是题目的解。)
<pre name="code" class="cpp">#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
int sub(int n)
{
if (1==n)
{
static int i = 0;
do
{
i++;
}
while(i%5 !=0);
return (i+1);
}
else
{
int t;
do
{
t = sub(n-1);
}
while(t%4!=0);
// 当前鱼的个数是t/4, 总的鱼的个数为 (t/4)×5 + 1
return (t/4*5+1);
}
}
int main()
{
cout<<"total fish number is :" <<sub(5)<<endl;
return 0;
}