diff options
| -rw-r--r-- | challenge-114/dave-jacoby/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-114/dave-jacoby/perl/ch-1.pl | 29 | ||||
| -rw-r--r-- | challenge-114/dave-jacoby/perl/ch-2.pl | 29 |
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; + } +} |
