要求:A、B、C、D、E五个人在某天合伙去捕鱼,到傍晚时都疲惫不堪,于是各自找地方睡觉。A第一个醒来,他将鱼分成五份,把多余的一条鱼扔掉,拿走自己的一份;B第二个醒来,他将鱼分成五份,把多余的一条鱼扔掉,拿走自己的一份;C、D、E依次醒来,也按照同样的方法拿鱼。
请问,他们合伙至少补了多少条鱼
实例:
有规律可循,我们采取递归函数的方法
(注意:递归函数求解时,一定要有递归结束的条件)
int sub(int n)
{
if (n == 1)
{
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);
return (t / 4 * 5+1);
}
}
运行结果如下
参考代码如下
#include <stdio.h>
int sub(int n)
{
if (n == 1)
{
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);
return (t / 4 * 5+1);
}
}
int main()
{
int total;
total=sub(5);
printf("鱼的总数是 %d\n",total);
return 0;
}