Matrix with two diagonals: Difference between revisions

→‎{{header|Perl}}: alternate version
(→‎{{header|Perl}}: alternate version)
Line 313:
 
=={{header|Perl}}==
===Strings===
<lang perl>#!/usr/bin/perl
 
Line 328 ⟶ 329:
}</lang>
{{out}}
<pre>1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 1 0 0
Line 350:
0 0 1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 0 1</pre>
 
===Numbers===
</pre>
<lang perl>use strict;
use warnings;
use feature 'say';
 
sub dual_diagonal {
my($n) = shift() - 1;
my @m;
for (0..$n) {
my @rr = reverse my @r = ( (0) x $_, 1, (0) x ($n-$_) );
push @m, [ map { $r[$_] or $rr[$_] } 0..$n ]
}
@m
}
 
say join ' ', @$_ for dual_diagonal(4); say '';
say join ' ', @$_ for dual_diagonal(5);
</prelang>
{{out}}
<pre>1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
 
1 0 0 0 0 0 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1</pre>
 
=={{header|Phix}}==
2,392

edits