diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-10 13:10:10 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-10 13:10:10 +0100 |
| commit | 4d2cc77cf47d2dea299bd4e910d47f45cf66857c (patch) | |
| tree | b4a61bf426ce01f8ddad3c04df8871263607ef8b /challenge-003/rob4t | |
| parent | e57020f83c26d151fc8c2d8d8475d15138cde60a (diff) | |
| download | perlweeklychallenge-club-4d2cc77cf47d2dea299bd4e910d47f45cf66857c.tar.gz perlweeklychallenge-club-4d2cc77cf47d2dea299bd4e910d47f45cf66857c.tar.bz2 perlweeklychallenge-club-4d2cc77cf47d2dea299bd4e910d47f45cf66857c.zip | |
- Moved solution by Robert Gratza to the correct folder.
Diffstat (limited to 'challenge-003/rob4t')
| -rw-r--r-- | challenge-003/rob4t/README | 1 | ||||
| -rw-r--r-- | challenge-003/rob4t/perl6/ch-1.p6 | 22 | ||||
| -rw-r--r-- | challenge-003/rob4t/perl6/ch-2.p6 | 27 |
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-003/rob4t/README b/challenge-003/rob4t/README new file mode 100644 index 0000000000..787d89fa0a --- /dev/null +++ b/challenge-003/rob4t/README @@ -0,0 +1 @@ +Solution by Robert Gratza diff --git a/challenge-003/rob4t/perl6/ch-1.p6 b/challenge-003/rob4t/perl6/ch-1.p6 new file mode 100644 index 0000000000..8e442553b0 --- /dev/null +++ b/challenge-003/rob4t/perl6/ch-1.p6 @@ -0,0 +1,22 @@ +#!/usr/bin/env perl6 +use v6; + +subset PositiveInt of Int where { $^n >= 0} + +sub MAIN(PositiveInt $amount = 5) { + say get-hamming-sequence()[0..$amount-1]; +} + +sub get-hamming-sequence() { + return lazy gather { take $_ if is-hamming-number($_) for 1..Inf }; +} + +sub is-hamming-number(PositiveInt $number is copy --> Bool) { + return True if $number == 1; + + for 2,3,5 -> $divisor { + return is-hamming-number($number div $divisor) if $number %% $divisor; + } + + return False; +}; diff --git a/challenge-003/rob4t/perl6/ch-2.p6 b/challenge-003/rob4t/perl6/ch-2.p6 new file mode 100644 index 0000000000..3d0b60786b --- /dev/null +++ b/challenge-003/rob4t/perl6/ch-2.p6 @@ -0,0 +1,27 @@ +#!/usr/bin/env perl6 +use v6; + +subset PositiveInt of Int where { $^n >= 0} +subset IntBigger3 of Int where { $^n >= 3} + +sub MAIN(IntBigger3 $rows) { + for 0..$rows-1 -> $i { + for 0 .. $i -> $j { + print " " if $j; + print get-binomial-coefficient($i, $j); + } + print "\n"; + } +} + +sub get-binomial-coefficient( PositiveInt $n is copy, PositiveInt $k is copy --> Int ) { + return 1 if $k == 0; + if (2*$k) > $n { + $k = $n - $k; + }; + my $r = 1; + for 1..$k { + $r = $r * ( $n - $k + $_ ) / $_; + } + return $r.Int; +}; |
