Perl关于分椰子的趣味问题

  话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好有有棵椰子树,还有一只猴子!

  大家把椰子全部采摘下来放在一起,但是天已经很晚了,所以就睡觉先晚上某个家伙悄悄的起床,悄悄的将椰子分成5份,结果发现多一个椰子,顺手就给了幸运的猴子,然后又悄悄的藏了一份,然后把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了

  过了会儿,另一个家伙也悄悄的起床,悄悄的将剩下的椰子分成5份,结果发现多一个椰子,顺手就又给了幸运的猴子,然后又悄悄滴藏了一份,把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了

  又过了一会

  又过了一会 

  总之5个家伙都起床过,都做了一样的事情。

  早上大家都起床,各自心怀鬼胎的分椰子了,这个猴子还真不是一般的幸运,因为这次把椰子分成5分后居然还是多一个椰子,只好又给它了.问题来了,这堆椰子最少有多少个? 

  计算方式: a(n+1)=(a(n)-1)/5*4

  用数组来解不要太合适:

 1 #!/usr/bin/perl -w
 2 use strict;
 3 
 4 my $cnt=6;
 5 my @arr=(1,);
 6 my $find=0;
 7 until($find){
 8     foreach(0..$cnt-2){
 9         $arr[$_+1]=($arr[$_]-1)/5*4;
10     }
11     if(int($arr[-1])==$arr[-1] && $arr[-1]%5==1){
12         print "@arr\n";
13     }
14     $arr[0]+=5;
15 }

  输出数组如下:

  最少有 15621个椰子,不得不吐槽一下这变异椰子树,还有那头不知道从哪里冒出来的牛

posted @ 2015-06-02 09:43  葡萄不吐皮  阅读(224)  评论(0编辑  收藏  举报