diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-28 16:24:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-28 16:24:35 +0100 |
| commit | 0c12514300145d61af1e2e16ff98c668beb09790 (patch) | |
| tree | 74c8e5b3045d7508c02fdf575e95a6dc3d9ff49c | |
| parent | 5fd28ef0a97d621e29bc4c30cd670bcb4989863e (diff) | |
| parent | 3b538b6eec00aa989d9347e93ac09c3705e0c210 (diff) | |
| download | perlweeklychallenge-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.pl | 17 | ||||
| -rw-r--r-- | challenge-119/dave-cross/perl/ch-2.pl | 43 |
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]; +} |
