From 4d2cc77cf47d2dea299bd4e910d47f45cf66857c Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Wed, 10 Apr 2019 13:10:10 +0100 Subject: - Moved solution by Robert Gratza to the correct folder. --- challenge-003/rob4t/README | 1 + challenge-003/rob4t/perl6/ch-1.p6 | 22 ++++++++++++++++++++++ challenge-003/rob4t/perl6/ch-2.p6 | 27 +++++++++++++++++++++++++++ challenge-003/robert-gratza/README | 1 - challenge-003/robert-gratza/perl6/ch-1.p6 | 22 ---------------------- challenge-003/robert-gratza/perl6/ch-2.p6 | 27 --------------------------- 6 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 challenge-003/rob4t/README create mode 100644 challenge-003/rob4t/perl6/ch-1.p6 create mode 100644 challenge-003/rob4t/perl6/ch-2.p6 delete mode 100644 challenge-003/robert-gratza/README delete mode 100644 challenge-003/robert-gratza/perl6/ch-1.p6 delete mode 100644 challenge-003/robert-gratza/perl6/ch-2.p6 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; +}; diff --git a/challenge-003/robert-gratza/README b/challenge-003/robert-gratza/README deleted file mode 100644 index 787d89fa0a..0000000000 --- a/challenge-003/robert-gratza/README +++ /dev/null @@ -1 +0,0 @@ -Solution by Robert Gratza diff --git a/challenge-003/robert-gratza/perl6/ch-1.p6 b/challenge-003/robert-gratza/perl6/ch-1.p6 deleted file mode 100644 index 8e442553b0..0000000000 --- a/challenge-003/robert-gratza/perl6/ch-1.p6 +++ /dev/null @@ -1,22 +0,0 @@ -#!/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/robert-gratza/perl6/ch-2.p6 b/challenge-003/robert-gratza/perl6/ch-2.p6 deleted file mode 100644 index 3d0b60786b..0000000000 --- a/challenge-003/robert-gratza/perl6/ch-2.p6 +++ /dev/null @@ -1,27 +0,0 @@ -#!/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; -}; -- cgit