RosettaCodeData/Task/Zig-zag-matrix/Perl/zig-zag-matrix-1.pl
2015-11-18 06:14:39 +00:00

24 lines
534 B
Perl

use 5.010;
sub zig_zag {
my $n = shift;
my $max_number = $n**2;
my @matrix;
my $number = 0;
for my $j ( 0 .. --$n ) {
for my $i (
$j % 2
? 0 .. $j
: reverse 0 .. $j
)
{
$matrix[$i][ $j - $i ] = $number++;
#next if $j == $n;
$matrix[ $n - $i ][ $n - ( $j - $i ) ] = $max_number - $number;
}
}
return @matrix;
}
my @zig_zag_matrix = zig_zag(5);
say join "\t", @{$_} foreach @zig_zag_matrix;