0%

猴子分桃问题

题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,
拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,
它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main()
{
int divide_peach(int divide_start, int divide_end, int monkey_num);
printf("原来有%d个桃子", divide_peach(4, 4, 5));
return 0;

}
int divide_peach(int divide_start, int divide_end, int monkey_num) {
if (monkey_num == 0) {
return divide_end;
}
else {
if (divide_end % 4 == 0 && divide_end != 0) {
return divide_peach(divide_start, (divide_end / 4) * 5 + 1, --monkey_num);
}
else {
divide_start += 4;
return divide_peach(divide_start, divide_start, 5);
}
}
}