• 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
    ";
    13     }
    14     $arr[0]+=5;
    15 }

      输出数组如下:

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

  • 相关阅读:
    大数运算
    混合背包问题
    多重背包问题(二进制优化)
    完全背包
    01背包问题
    树状数组
    构建之法阅读笔记04
    第一次冲刺个人总结07
    构建之法阅读笔记03
    第一次冲刺个人总结06
  • 原文地址:https://www.cnblogs.com/wbjxxzx/p/4545567.html
Copyright © 2020-2023  润新知