diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-07-04 16:13:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-04 16:13:28 +0100 |
| commit | 2b6749e2ae74e8c2e840913a66562c82e2150a7e (patch) | |
| tree | 72d6344cfba407a70ddfdab27a4bb3cfcc5a24dd | |
| parent | a1fef2c6f72160e3d0e8063948c73ac23eeb70a4 (diff) | |
| parent | a2c85542096aa7acefefe1563f24e27e9a765b72 (diff) | |
| download | perlweeklychallenge-club-2b6749e2ae74e8c2e840913a66562c82e2150a7e.tar.gz perlweeklychallenge-club-2b6749e2ae74e8c2e840913a66562c82e2150a7e.tar.bz2 perlweeklychallenge-club-2b6749e2ae74e8c2e840913a66562c82e2150a7e.zip | |
Merge pull request #4411 from LubosKolouch/master
Challenge 119 LK Perl
| -rw-r--r-- | challenge-119/lubos-kolouch/perl/ch-1.pl | 41 | ||||
| -rw-r--r-- | challenge-119/lubos-kolouch/perl/ch-2.pl | 41 |
2 files changed, 82 insertions, 0 deletions
diff --git a/challenge-119/lubos-kolouch/perl/ch-1.pl b/challenge-119/lubos-kolouch/perl/ch-1.pl new file mode 100644 index 0000000000..eeabeb5459 --- /dev/null +++ b/challenge-119/lubos-kolouch/perl/ch-1.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-1.pl +# +# USAGE: ./ch-1.pl +# +# DESCRIPTION: Perl Weekly Challenge #119 +# Task 1 - Swap Nibbles +# +# AUTHOR: Lubos Kolouch +# CREATED: 07/04/2021 04:44:33 PM +#=============================================================================== + +use strict; +use warnings; + +sub bin2dec { + # shamelessly copied from The Perl Cookbook + return unpack("N", pack("B32", substr("0" x 32 . shift, -32))); +} + +sub reverse_nibbles { + my $what = shift; + + my $binary_what = sprintf ("%b",$what); + + my $first_part = sprintf("%04d", substr $binary_what, 0, -4); + my $second_part = sprintf("%04d", substr $binary_what, -4); + + my $reversed_binary = $second_part . $first_part; + return bin2dec($reversed_binary); +} + +use Test::More; + +is(reverse_nibbles(101), 86); +is(reverse_nibbles(18), 33); + +done_testing; + diff --git a/challenge-119/lubos-kolouch/perl/ch-2.pl b/challenge-119/lubos-kolouch/perl/ch-2.pl new file mode 100644 index 0000000000..99334d91b5 --- /dev/null +++ b/challenge-119/lubos-kolouch/perl/ch-2.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-2.pl +# +# USAGE: ./ch-2.pl +# +# DESCRIPTION: Perl Weekly Challenge #119 +# Task 2 - Sequence without 1-1 +# +# AUTHOR: Lubos Kolouch +# CREATED: 07/04/2021 04:44:33 PM +#=============================================================================== + +use strict; +use warnings; + +sub get_nth_number { + my $what = shift; + + my $pos = 0; + my $target = 0; + + while ($target < $what) { + $pos++; + + next if $pos =~ /[04-9]|11/; + $target++; + } + + return $pos; + + +} +use Test::More; + +is(get_nth_number(5), 13); +is(get_nth_number(10), 32); +is(get_nth_number(60), 2223); +done_testing; + |
