五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。然后,第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。以后第3、4个水手依次按此方法处理。最后,第5个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子。请用迭代法编程计算并输出原来这堆椰子至少有多少个。
#include "stdio.h"
int can(int k)
{
int i;
for (i=1;i<=5;i++) //这儿为啥要循环5次呢?
{
if ((k-1)%5!=0||k< 5) return 0;
k=(k-1)/5*4;
}
return 1;
}
int main()
{
int ans=1;
while (!can(ans)) ans++;
printf("y = %d\n",ans);
return 0;
}
代码的结果是正确的~
#include "stdio.h"
int can(int k)
{
int i;
for (i=1;i<=5;i++) //这儿为啥要循环5次呢?
{
if ((k-1)%5!=0||k< 5) return 0;
k=(k-1)/5*4;
}
return 1;
}
int main()
{
int ans=1;
while (!can(ans)) ans++;
printf("y = %d\n",ans);
return 0;
}
代码的结果是正确的~