014
04.11.2003, 09:16 Uhr
~kunt
Gast
|
ich habs jetz mal so ähnlich versucht wie oxdeadbeaf es vorgeschlagen hat
C++: |
#include <iostream.h>
int a,b,c,d,e,f,g,h,i,w,x,y,n,vert,horiz,diag1,diag2,magicnumber=(n*n+1)*n/2; int square[3][3];
#include <iostream.h>
int a,b,c,d,e,f,g,h,i,w,x,y,n,vert,horiz,diag1,diag2,magicnumber=(n*n+1)*n/2; int square[3][3];
void main(void) { n=3; w=0; for(a=1;a<9;a++) { for(b=1;b<9;b++) { e=5; c=15-a-b; i=10-a; h=10-b; g=-5+a+b; d=20-2*a-b; f=-10+2*a+b;
square[1][1]=a; square[1][2]=b; square[1][3]=c; square[2][1]=d; square[2][2]=e; square[2][3]=f; square[3][1]=g; square[3][2]=h; square[3][3]=i; for(x=diag1=diag2=0;x<n;x++) { for(y=vert=horiz=0;y<n;y++) { vert += square[x][y]; horiz += square[y][x]; } if(vert==magicnumber&&horiz==magicnumber) { diag1 += square[x][x]; diag2 += square[x][(n+1)-x]; } } if(vert==magicnumber && horiz==magicnumber && diag1==magicnumber && diag2==magicnumber) w++;
} } cout << "Es existieren " << w <<" magische Quadrate\nder Ordnung 3.\n"; }
|
aber irgendwie haut das nich hin...ka woran das liegt. eigentlich müsste er 81 quadrate der ordnung 1 zählen, tut er aber nich. kennt noch jemand eine methode eine matrix dadrauf zu prüfen ob alle zahlen von 1 bis n² drin sind oder nicht? das brauch ich noch als einschränkung damit genau ein magisches quadrat der ordnung 3 dabei raus kommt...
kunt
--edit: Pablo. [ cpp ] tags gesetzt -- Dieser Post wurde am 04.11.2003 um 19:12 Uhr von Pablo Yanez Trujillo editiert. |