五人分鱼问题
问题描述:
A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。C、D、E依次醒来,也按同样的方法拿鱼。问他们台伙至少捕了多少条鱼?以及每个人醒来时见到了多少鱼?
至少合伙捕鱼:3121条
分别见到鱼的条数:2496 1996 1596 1276
代码实现:
void fun()
{
int x = 6; // 5个人总的捕鱼数
int a, b, c, d, e; // 对应5个人分别见到的鱼的总数
for (;; x++) {
a = x;
b = 4 * (a - 1) / 5;
c = 4 * (b - 1) / 5;
d = 4 * (c - 1) / 5;
e = 4 * (d - 1) / 5;
if (a%5==1&& b% 5 == 1 && c % 5 == 1 && d % 5 == 1 && e % 5 == 1 ) {
printf("5个人至少捕了%d条鱼\n", x);
printf("A:%d,B:%d,C:%d,D:%d,E:%d", a, b, c, d, e);
break;
}
}
}