Jump to content

Magic squares of doubly even order: Difference between revisions

m
(Added Befunge example.)
Line 672:
=={{header|Elena}}==
{{trans|C#}}
ELENA 3.34 :
<lang elena>import system'routines.
import extensions.
import extensions'routines.
 
MagicSquareDoublyEven = (:n)<int>
[
if((n < 4)||(n mod(4) != 0))
[ InvalidArgumentException new:"base must be a positive multiple of 4" ].
int bits := 09669h.
int size := n * n.
int mult := n / 4.
var result := IntMatrix new(n,n).
int r := 0.
Line 695:
[
int bitPos := c / mult + (r / mult) * 4.
result[r][c] := ((bits && (1 << bitPos)) != 0)iif(i+1,size - i).
i += 1.
c += 1.
Line 703:
r += 1.
].
^ result
].
 
programpublic =program
[
int n := 8.
console printLine(MagicSquareDoublyEven(n) forEach(printingLn).
console printLine; printLine("Magic constant: ",(n * n + 1) * n / 2).
].</lang>
{{out}}
<pre>
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.