diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-24 09:47:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-24 09:47:09 +0100 |
| commit | 7457664458c08e05beec3f1f9396508791c93913 (patch) | |
| tree | ac024ddf44797a2ca2af5177faab6294c3bc74cf | |
| parent | c61ba475fd263546925b47f264825a44477622e0 (diff) | |
| parent | 68995345f41727a241644e976e76f5d40f84cd6b (diff) | |
| download | perlweeklychallenge-club-7457664458c08e05beec3f1f9396508791c93913.tar.gz perlweeklychallenge-club-7457664458c08e05beec3f1f9396508791c93913.tar.bz2 perlweeklychallenge-club-7457664458c08e05beec3f1f9396508791c93913.zip | |
Merge pull request #4131 from davorg/master
Solutions for challenge #114
| -rw-r--r-- | challenge-114/dave-cross/ch-1.pl | 24 | ||||
| -rw-r--r-- | challenge-114/dave-cross/ch-2.pl | 34 |
2 files changed, 58 insertions, 0 deletions
diff --git a/challenge-114/dave-cross/ch-1.pl b/challenge-114/dave-cross/ch-1.pl new file mode 100644 index 0000000000..8846c2c632 --- /dev/null +++ b/challenge-114/dave-cross/ch-1.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use feature 'say'; + +my $n = get_arg(); + +while (1) { + ++$n; + + if ($n == reverse $n) { + say $n; + last; + } +} + +sub get_arg { + if (!@ARGV or $ARGV[0] =~ /\D/) { + die "Give me a positive integer\n"; + } + + return $ARGV[0]; +} diff --git a/challenge-114/dave-cross/ch-2.pl b/challenge-114/dave-cross/ch-2.pl new file mode 100644 index 0000000000..74a508aa22 --- /dev/null +++ b/challenge-114/dave-cross/ch-2.pl @@ -0,0 +1,34 @@ +#!/use/bin/perl + +use strict; +use warnings; +use feature 'say'; + +my $n = get_arg(); + +my $count = get_set_bits($n); + +while (1) { + $n++; + + if (get_set_bits($n) == $count) { + say $n; + last; + } +} + +sub get_arg { + if (!@ARGV or $ARGV[0] =~ /\D/) { + die "Give me a positive integer\n"; + } + + return $ARGV[0]; +} + +sub get_set_bits { + my ($dec) = @_; + + my $bin = sprintf '%b', $dec; + + return scalar $bin =~ tr/1//; +} |
