aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-28 16:24:35 +0100
committerGitHub <noreply@github.com>2021-06-28 16:24:35 +0100
commit0c12514300145d61af1e2e16ff98c668beb09790 (patch)
tree74c8e5b3045d7508c02fdf575e95a6dc3d9ff49c
parent5fd28ef0a97d621e29bc4c30cd670bcb4989863e (diff)
parent3b538b6eec00aa989d9347e93ac09c3705e0c210 (diff)
downloadperlweeklychallenge-club-0c12514300145d61af1e2e16ff98c668beb09790.tar.gz
perlweeklychallenge-club-0c12514300145d61af1e2e16ff98c668beb09790.tar.bz2
perlweeklychallenge-club-0c12514300145d61af1e2e16ff98c668beb09790.zip
Merge pull request #4361 from davorg/master
Challenge #119
-rw-r--r--challenge-119/dave-cross/perl/ch-1.pl17
-rw-r--r--challenge-119/dave-cross/perl/ch-2.pl43
2 files changed, 60 insertions, 0 deletions
diff --git a/challenge-119/dave-cross/perl/ch-1.pl b/challenge-119/dave-cross/perl/ch-1.pl
new file mode 100644
index 0000000000..ea2c14b0c1
--- /dev/null
+++ b/challenge-119/dave-cross/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+say oct '0b' . join '', reverse get_number() =~ /(\d{4})(\d{4})/;
+
+sub get_number {
+ my $err = "Give me an integer less than 256\n";
+
+ die $err unless @ARGV;
+ die $err if $ARGV[0] =~ /\D/;
+ die $err if $ARGV[0] >= 256;
+
+ return sprintf '%08b', $ARGV[0];
+}
diff --git a/challenge-119/dave-cross/perl/ch-2.pl b/challenge-119/dave-cross/perl/ch-2.pl
new file mode 100644
index 0000000000..b794681d99
--- /dev/null
+++ b/challenge-119/dave-cross/perl/ch-2.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+my $n = get_number();
+
+my @seq;
+
+while (@seq < $n) {
+ get_next(\@seq);
+}
+
+say $seq[-1];
+
+sub get_next {
+ my ($seq) = @_;
+
+ unless (@$seq) {
+ @$seq = 1;
+ return;
+ }
+
+ my $next = $seq->[-1] + 1;
+
+ until ($next =~ /^[123]+$/ and $next !~ /11/) {
+ ++$next;
+ }
+
+ push @$seq, $next;
+
+ return;
+}
+
+sub get_number {
+ my $err = "Give me an integer\n";
+
+ die $err unless @ARGV;
+ die $err if $ARGV[0] =~ /\D/;
+
+ return $ARGV[0];
+}