Magic squares of doubly even order: Difference between revisions
Content added Content deleted
(Added solution for EDSAC) |
|||
Line 274: | Line 274: | ||
133 134 135 9 8 7 6 5 4 142 143 144 |
133 134 135 9 8 7 6 5 4 142 143 144 |
||
magic constant = 870 |
magic constant = 870 |
||
</pre> |
|||
=={{header|Amazing Hopper}}== |
|||
{{Trans|C++}} |
|||
<syntaxhighlight lang="c"> |
|||
/* |
|||
Magic squares of doubly even order. Rosettacode.org |
|||
By Mr. Dalien. |
|||
*/ |
|||
#include <basico.h> |
|||
#proto cuadradomágico(_X_) |
|||
#synon _cuadradomágico generarcuadradomágico |
|||
principal { |
|||
decimales '0', fijar separador 'NULO' |
|||
malla de bits(bits,'1,0,0,1','0,1,1,0','0,1,1,0','1,0,0,1') |
|||
borrar pantalla |
|||
iterar para( i=1; n=4, #(i<=3), ++i; #(n=4*i) ) |
|||
dim( #(n*n) ) matriz de ceros 'sqr' |
|||
generar cuadrado mágico (n); |
|||
ir a sub ( meter en tabla, sqr, #(n+1), 4 ), para 'sqr' |
|||
imprimir '"Magic square order ",n,\ |
|||
"\nMagic constant : ",#((n * n + 1) * n / 2),\ |
|||
NL,sqr,NL,NL' |
|||
luego limpiar 'sqr' |
|||
siguiente |
|||
terminar |
|||
} |
|||
subrutinas |
|||
sub( meter en tabla, s, n, w ) { |
|||
i=n,rareti(i, 'i') |
|||
retener 'n', insertar columnas en 's' |
|||
insertar filas en 's' |
|||
#basic{ |
|||
s[1:2:2*n-1,1:_end_] = "---" |
|||
s[1:_end_, 1:2:2*n-1] = "|" |
|||
s[1:2:_end_,1:2:_end_] = "+" |
|||
} |
|||
retornar 's' |
|||
} |
|||
cuadrado mágico ( n ) |
|||
iterar para ( cr=0;i=0, #(cr<n), ++cr ) |
|||
iterar para ( cc=0, #(cc<n), ++cc;++i ) |
|||
#( sqr[ (cc+n*cr)+1 ] = (bits[(cr%4+1),(cc%4+1)]) ? (i+1) : (n^2-i); ) |
|||
siguiente |
|||
siguiente |
|||
#( sqr = lpad(" ",3,string(sqr))) |
|||
redim ( sqr, n, n ) |
|||
retornar |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Magic square order 4 |
|||
Magic constant : 34 |
|||
+---+---+---+---+ |
|||
| 1| 15| 14| 4| |
|||
+---+---+---+---+ |
|||
| 12| 6| 7| 9| |
|||
+---+---+---+---+ |
|||
| 8| 10| 11| 5| |
|||
+---+---+---+---+ |
|||
| 13| 3| 2| 16| |
|||
+---+---+---+---+ |
|||
Magic square order 8 |
|||
Magic constant : 260 |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 1| 63| 62| 4| 5| 59| 58| 8| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 56| 10| 11| 53| 52| 14| 15| 49| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 48| 18| 19| 45| 44| 22| 23| 41| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 25| 39| 38| 28| 29| 35| 34| 32| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 33| 31| 30| 36| 37| 27| 26| 40| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 24| 42| 43| 21| 20| 46| 47| 17| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 16| 50| 51| 13| 12| 54| 55| 9| |
|||
+---+---+---+---+---+---+---+---+ |
|||
| 57| 7| 6| 60| 61| 3| 2| 64| |
|||
+---+---+---+---+---+---+---+---+ |
|||
Magic square order 12 |
|||
Magic constant : 870 |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 1|143|142| 4| 5|139|138| 8| 9|135|134| 12| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
|132| 14| 15|129|128| 18| 19|125|124| 22| 23|121| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
|120| 26| 27|117|116| 30| 31|113|112| 34| 35|109| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 37|107|106| 40| 41|103|102| 44| 45| 99| 98| 48| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 49| 95| 94| 52| 53| 91| 90| 56| 57| 87| 86| 60| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 84| 62| 63| 81| 80| 66| 67| 77| 76| 70| 71| 73| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 72| 74| 75| 69| 68| 78| 79| 65| 64| 82| 83| 61| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 85| 59| 58| 88| 89| 55| 54| 92| 93| 51| 50| 96| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 97| 47| 46|100|101| 43| 42|104|105| 39| 38|108| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 36|110|111| 33| 32|114|115| 29| 28|118|119| 25| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
| 24|122|123| 21| 20|126|127| 17| 16|130|131| 13| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
|133| 11| 10|136|137| 7| 6|140|141| 3| 2|144| |
|||
+---+---+---+---+---+---+---+---+---+---+---+---+ |
|||
</pre> |
</pre> |
||