首页 > 试题广场 >

(选做)5个水手在岛上发现一堆椰子,先由第一个水手把椰子分为

[问答题]
(选做)5个水手在岛上发现一堆椰子,先由第一个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。然后,第二个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。以后第三、四个水手依买按此方法处理。最后,第五个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子。请用迭代法编程计算并输出原来这堆椰子至少有多少个。
#include<stdio.h>
#define M 5    //水手数,即迭代次数
#define N 1    //每次剩的椰子个数
int Fact(int n)
{
    return 5*n+N;
}
int main()
{
int a=1;
for(int i=1;i<=M;i++)
{
    a=Fact(a);
}
printf("%d",a);
return 0;
}
编辑于 2019-09-12 18:08:18 回复(0)
暴力枚举:
int monkey=1;
int peaches=1;
int peach=1;
 while (monkey<=n){
    if ((peach - 1) % 5 == 0 && peach > 0) {
     peach = (peach / 5) * 4;
     monkey++;
 } else {
     peaches++;
     peach=peaches;
     monkey=1;
 }
}
System.out.println(peaches);

编辑于 2018-10-14 11:39:58 回复(0)