diff options
| -rwxr-xr-x | challenge-114/perlboy1967/perl/ch-1.pl | 36 | ||||
| -rwxr-xr-x | challenge-114/perlboy1967/perl/ch-2.pl | 37 |
2 files changed, 73 insertions, 0 deletions
diff --git a/challenge-114/perlboy1967/perl/ch-1.pl b/challenge-114/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..435ad84539 --- /dev/null +++ b/challenge-114/perlboy1967/perl/ch-1.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 114 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-114/#TASK1 +# +# Task 1 - Next Palindrome Number +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +use Test::More; + +# Prototype(s) +sub nextPalindromeNumber($); + +my %tests = (1234 => 1331, 999 => 1001, 54321 => 54345); + +foreach my $test (keys %tests) { + is(nextPalindromeNumber($test), $tests{$test}); +} + +done_testing; + +sub nextPalindromeNumber($) { + my ($n) = @_; + + do { + $n++; + } while ($n != reverse scalar $n); + + return $n; +} + diff --git a/challenge-114/perlboy1967/perl/ch-2.pl b/challenge-114/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..17d5c28075 --- /dev/null +++ b/challenge-114/perlboy1967/perl/ch-2.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 114 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-114/#TASK2 +# +# Task 2 - HigherIntegerSetBits +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +use Test::More; + +# Prototype(s) +sub higherIntegerSetBits($); + +my %tests = (3 => 5, 12 => 17, 127 => 191, 666 => 668); + +foreach my $test (keys %tests) { + is(higherIntegerSetBits($test), $tests{$test}); +} + +done_testing; + +sub higherIntegerSetBits($) { + my ($n) = @_; + + my $nBitsSet = scalar(grep/1/,split(//,sprintf('%b',$n))); + do { + $n++; + } while ($nBitsSet != scalar(grep/1/,split(//,sprintf('%b',$n)))); + + return $n; +} + |
