exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

commit db7a0fc31bc421b402bcc3eb622a85b8a114c48e
parent 92f5a893bac520226d181a32cffe5210ec2003ef
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Sun, 27 Feb 2022 18:25:24 +0000

get all tests to pass for Pascal's triangle

Diffstat:
Mpascals-triangle/PascalsTriangle.pm | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/pascals-triangle/PascalsTriangle.pm b/pascals-triangle/PascalsTriangle.pm @@ -6,7 +6,22 @@ our @EXPORT_OK = qw<pascal_rows>; sub pascal_rows { my ($rows) = @_; - return undef; + my $output = ''; + my @triangle = (); + return $output unless $rows; + return '1' if ( $rows == 1 ); + push @triangle => [ 1 ]; + foreach my $r ( 2 .. $rows) { + my @row = (); + foreach my $element ( 1 .. $r ) { + my $p1 = $element == 1 ? 0 : $triangle[$r-2][$element-2]; + my $p2 = $element == $r ? 0 : $triangle[$r-2][$element-1]; + push @row => $p1 + $p2; + } + push @triangle => \@row; + } + $output = join( "\n", map { join ' ', @$_ } @triangle ); + return $output; } 1;