diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-28 21:47:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-28 21:47:04 +0100 |
| commit | 96c4de73792e6a3c39da4e3ce84097ab078d3d11 (patch) | |
| tree | 09b8ee094234aa1d67736a3830be7905564899c8 | |
| parent | a19195684d5082f29c957ee1d7902255165fd908 (diff) | |
| parent | 0f956f9126018be1330331767c55143a1f046f31 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-119/wlmb/perl/ch-1.pl | 17 | ||||
| -rwxr-xr-x | challenge-119/wlmb/perl/ch-2.pl | 32 |
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; +} |
