话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好有有棵椰子树,还有一只猴子!大家把椰子全部采摘下来放在一起,但是天已经很晚了,所以就睡觉先.
晚上某个家伙悄悄的起床,悄悄的将椰子分成5份,结果发现多一个椰子,顺手就给了幸运的猴子,然后又悄悄的藏了一份,然后把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了.
过了会儿,另一个家伙也悄悄的起床,悄悄的将剩下的椰子分成5份,结果发现多一个椰子,顺手就又给了幸运的猴子,然后又悄悄滴藏了一份,把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了.
又过了一会 ......
又过了一会 ...
总之5个家伙都起床过,都做了一样的事情。早上大家都起床,各自心怀鬼胎的分椰子了,这个猴子还真不是一般的幸运,因为这次把椰子分成5分后居然还是多一个椰子,只好又给它了.问题来了,这堆椰子最少有多少个?
#include <iostream.h>
void main()
{
int sun=1,x=5,sunmax=9000000000,xsun=0,y;
do {
sun++;
y=sun%x;
if (y=1)
{
xsun=sun;
xsun=xsun-1;
xsun=xsun-xsun/x;
y=xsun%5;
}
else if (y=1)
{
xsun=xsun-1;
xsun=xsun-xsun/x;
y=xsun%x;
}
else if (y==1)
{
xsun=xsun-1;
xsun=xsun-xsun/x;
y=xsun%x;
}
else if (y==1)
{
xsun=xsun-1;
xsun=xsun-xsun/x;
y=xsun%x;
}
else if (y==1)
{
xsun=xsun-1;
xsun=xsun-xsun/x;
y=xsun%x;
cout<<sun<<"ok5"<<endl;
}
else if (y==1)
{
cout<<sun<<"ok"<<endl;
}
cout<<sun<<"no"<<endl;
}while(sun<=sunmax);
}
下面是一位网友做的,也是输出不了正确答案。
#include <iostream>
using namespace std;
int main()
{
long i,j,n;
for(i=1;;i++)
{
j=i;
n=6;
while(1)
{
if(j%5==1){j=j-j/5-1;n--;}
else break;
}
if(n==0) {cout<<i<<" ok"<<endl;break;}
else cout<<i<<" no"<<endl;
} return 0;
}
|