aboutsummaryrefslogtreecommitdiff
path: root/challenge-114
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-25 13:08:28 +0100
committerGitHub <noreply@github.com>2021-05-25 13:08:28 +0100
commit2d1dd640fcdf5ca902bd9bf0ef3a562e6cb909ec (patch)
tree101654ab379311054b8d609cd1f0c905867ea8db /challenge-114
parent0dbf9cb80fc8c73bce5d1bbc89231739bdbf613c (diff)
parenteb38239e878ab232e9cdfca1933cd1a1139646b8 (diff)
downloadperlweeklychallenge-club-2d1dd640fcdf5ca902bd9bf0ef3a562e6cb909ec.tar.gz
perlweeklychallenge-club-2d1dd640fcdf5ca902bd9bf0ef3a562e6cb909ec.tar.bz2
perlweeklychallenge-club-2d1dd640fcdf5ca902bd9bf0ef3a562e6cb909ec.zip
Merge pull request #4142 from jacoby/master
Challenge 114 from Dave, w/ Blog Link
Diffstat (limited to 'challenge-114')
-rw-r--r--challenge-114/dave-jacoby/blog.txt1
-rw-r--r--challenge-114/dave-jacoby/perl/ch-1.pl29
-rw-r--r--challenge-114/dave-jacoby/perl/ch-2.pl29
3 files changed, 59 insertions, 0 deletions
diff --git a/challenge-114/dave-jacoby/blog.txt b/challenge-114/dave-jacoby/blog.txt
new file mode 100644
index 0000000000..132dcbeb94
--- /dev/null
+++ b/challenge-114/dave-jacoby/blog.txt
@@ -0,0 +1 @@
+https://jacoby.github.io/2021/05/24/escape-from-the-infinite-loop-perl-weekly-challenge-114.html \ No newline at end of file
diff --git a/challenge-114/dave-jacoby/perl/ch-1.pl b/challenge-114/dave-jacoby/perl/ch-1.pl
new file mode 100644
index 0000000000..83f03e1f47
--- /dev/null
+++ b/challenge-114/dave-jacoby/perl/ch-1.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature qw{ say state postderef signatures };
+no warnings qw{ experimental };
+
+my @list = ( 1234, 999 );
+@list = @ARGV ? @ARGV : @list;
+
+for my $n (@list) {
+ my $p = next_palindrome($n);
+ say <<"END";
+ Input: $n
+ Output: $p
+END
+}
+
+sub next_palindrome ( $n ) {
+ while (1) {
+ $n++;
+ my $r = 0 + reverse_string($n);
+ return $n if $n == $r;
+ }
+}
+
+sub reverse_string ( $s ) {
+ return scalar reverse $s;
+}
diff --git a/challenge-114/dave-jacoby/perl/ch-2.pl b/challenge-114/dave-jacoby/perl/ch-2.pl
new file mode 100644
index 0000000000..ff48b484cc
--- /dev/null
+++ b/challenge-114/dave-jacoby/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature qw{ say state postderef signatures };
+no warnings qw{ experimental };
+
+use List::Util qq{sum0};
+
+my @list = ( 12, 3 );
+@list = @ARGV ? @ARGV : @list;
+
+for my $n (@list) {
+ my $h = hisb($n);
+ say <<"END";
+ Input: $n
+ Output: $h
+END
+}
+
+sub hisb ( $n ) {
+ my $m = $n;
+ my $b = sum0 split m{}, sprintf '%b', $m;
+ while (1) {
+ $m++;
+ my $d = sum0 split m{}, sprintf '%b', $m;
+ return $m if $b == $d;
+ }
+}