aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-108/perlboy1967/perl/ch-1.pl18
-rwxr-xr-xchallenge-108/perlboy1967/perl/ch-2.pl37
2 files changed, 55 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..7a241b6215
--- /dev/null
+++ b/challenge-108/perlboy1967/perl/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+
+# Perl Weekly Challenge - 108
+# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-108/#TASK2
+#
+# Task 2 - 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]];
+
+foreach my $bTRidx (1..8) {
+ 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->[-1][-1]);
+}
+
+# Print
+printf "%s\n", join(' ',1,@bn);