exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

Grains.pm (468B) - raw


      1 package Grains;
      2 
      3 use strict;
      4 use warnings;
      5 use feature qw<say>;
      6 use bignum;
      7 
      8 use Exporter qw<import>;
      9 our @EXPORT_OK = qw<grains_on_square total_grains>;
     10 
     11 sub grains_on_square {
     12     my ($square) = @_;
     13     die "square must be between 1 and 64"
     14         if $square < 1 or $square > 64;
     15     return 2 ** ( $square - 1 );
     16 }
     17 
     18 sub total_grains {
     19     my $total;
     20     foreach my $square ( 1 .. 64 ) {
     21         $total += grains_on_square( $square );
     22     }
     23     return $total;
     24 }
     25 
     26 1;