From f33dee7758eb47f54150aaa4c608ce1e61a7302c Mon Sep 17 00:00:00 2001 From: Niels van Dijke Date: Thu, 15 Apr 2021 08:19:09 +0000 Subject: Task 1 & 2 --- challenge-108/perlboy1967/perl/ch-1.pl | 18 +++++++++++++++ challenge-108/perlboy1967/perl/ch-2.pl | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 challenge-108/perlboy1967/perl/ch-1.pl create mode 100755 challenge-108/perlboy1967/perl/ch-2.pl 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\((?.*?)\)#; + +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); -- cgit