aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-28 21:47:04 +0100
committerGitHub <noreply@github.com>2021-06-28 21:47:04 +0100
commit96c4de73792e6a3c39da4e3ce84097ab078d3d11 (patch)
tree09b8ee094234aa1d67736a3830be7905564899c8
parenta19195684d5082f29c957ee1d7902255165fd908 (diff)
parent0f956f9126018be1330331767c55143a1f046f31 (diff)
downloadperlweeklychallenge-club-96c4de73792e6a3c39da4e3ce84097ab078d3d11.tar.gz
perlweeklychallenge-club-96c4de73792e6a3c39da4e3ce84097ab078d3d11.tar.bz2
perlweeklychallenge-club-96c4de73792e6a3c39da4e3ce84097ab078d3d11.zip
Merge pull request #4373 from wlmb/challenges
Challenges
-rw-r--r--challenge-119/wlmb/blog.txt1
-rwxr-xr-xchallenge-119/wlmb/perl/ch-1.pl17
-rwxr-xr-xchallenge-119/wlmb/perl/ch-2.pl32
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-119/wlmb/blog.txt b/challenge-119/wlmb/blog.txt
new file mode 100644
index 0000000000..9fd60d9082
--- /dev/null
+++ b/challenge-119/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2021/06/28/PWC119/
diff --git a/challenge-119/wlmb/perl/ch-1.pl b/challenge-119/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..9b31e80239
--- /dev/null
+++ b/challenge-119/wlmb/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 119
+# Task 1: Swap Nibbles
+#
+# See https://wlmb.github.io/2021/06/28/PWC119/#task-1-swap-nibbles
+
+
+use strict;
+use warnings;
+use v5.32;
+
+map {
+ die "Keep to range 0-255" unless 0<=$_<=255;
+ my $s=my $o=sprintf("%08b", $_);
+ $s=~s/^(.{4})(.{4})$/$2$1/;
+ say sprintf("Input: %s (%s), Output: %s(%s)", $_,$o, oct("0b$s"), $s)
+} @ARGV;
diff --git a/challenge-119/wlmb/perl/ch-2.pl b/challenge-119/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..4ef6a87d58
--- /dev/null
+++ b/challenge-119/wlmb/perl/ch-2.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 119
+# Task 2: sequence without 1-on-1
+#
+# See https://wlmb.github.io/2021/06/28/PWC119/#task-2-sequence-without-1-on-1
+
+use strict;
+use warnings;
+use v5.12;
+use integer;
+
+map {say "Input: $_, Output: ", get($_)} @ARGV;
+sub get {
+ my $want=shift;
+ my $n=1; #counter
+ my $r;
+ while($want-- > 0){
+ while(!defined ($r=convert($n++))){};
+ }
+ return $r;
+}
+
+sub convert {
+ my $n=shift;
+ my $r="";
+ return 0 if $n==0;
+ while($n>0){
+ $r=$n%4 . $r;
+ $n/=4;
+ }
+ return ($r=~m/11/ || $r=~/0/)?undef:$r;
+}