五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来,悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子了等分成五份,恰好也多出 一个,也给了猴子。然而自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此 分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个水手醒来,发现椰子少 了许多,心照不喧,便把剩下的椰子分成五份,恰好又多出一个,给了猴子。请问水手最初最少 摘了多少个椰子?
循环嵌套
while循环中,sum不断增加,从0++,问题问最少摘了多少个椰子,即sum从0++开始,当第一次k=4时,跳出循环。
for循环,椰子进行5次分配,如果满足5次sum%5==1,则用k计数,k=4;当k=4时,输出当前的sum。其中用s=sum,使得每次sum能够+1,不受sum=(sum-1)-((sum-1)/5)影响。
*#include<stdio.h>
int main()
{
int sum=0,n,k=0,s=0,i;
while(k!=4)
{
sum=s;
k=0;
for(i=0;i<4;i++)
{
if(sum%5==1)
{
sum=(sum-1)-((sum-1)/5);
k++;
}
if(k==4){
printf("%d",s);
break;
}
}
s++;
}
return 0;
}