diff options
| -rwxr-xr-x | challenge-108/perlboy1967/perl/ch-1.pl | 18 | ||||
| -rwxr-xr-x | challenge-108/perlboy1967/perl/ch-2.pl | 40 |
2 files changed, 58 insertions, 0 deletions
diff --git a/challenge-108/perlboy1967/perl/ch-1.pl b/challenge-108/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..9b636e7ee4 --- /dev/null +++ b/challenge-108/perlboy1967/perl/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 108 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-108/#TASK1 +# +# Task 1 - Locate Memory +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +use constant TEST => 1; + +\TEST =~ m#SCALAR\((?<location>.*?)\)#; + +printf "%s\n" , $+{location} // 'undef', diff --git a/challenge-108/perlboy1967/perl/ch-2.pl b/challenge-108/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..750364b8c0 --- /dev/null +++ b/challenge-108/perlboy1967/perl/ch-2.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 108 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-108/#TASK1 +# +# Task 1 - Bell Numbers +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +my @bn = (1); + +# Using the 'Bell triangle' algorithm + +my $bnT = [[1]]; +my $bTRidx = 1; + +while (scalar(@bn) < 10) { + my $prevTRdim = scalar(@{$bnT->[$bTRidx-1]}); + + # Copy + $bnT->[$bTRidx][0] = $bnT->[$bTRidx-1][$prevTRdim-1]; + foreach my $bTCidx (1 .. $prevTRdim) { + + # Add + $bnT->[$bTRidx][$bTCidx] = + $bnT->[$bTRidx-1][$bTCidx-1] + + $bnT->[$bTRidx][$bTCidx-1]; + + push(@bn, $bnT->[$bTRidx][$bTCidx]); + last if (scalar(@bn) >= 10); + } + $bTRidx++; +} + +# Print +printf "%s\n", join(' ',@bn); |
