aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-108/perlboy1967/perl/ch-1.pl18
-rwxr-xr-xchallenge-108/perlboy1967/perl/ch-2.pl40
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);