A square matrix (usually positive integers) with the sum of each row, column, and both main diagonals being the same is called a magic square. This is a C++ project.
Fact: The Magic Number(M) is the sum of each row, column, and both main diagonals.
M= n(n^2+1)/2: where n is the size of the square matrix
Algorithm:
Step 1. The position of 1 is fixed at (n/2,n-1) in a magic square. Let this position be (p,q).
Step 2. The number 2 will be placed at (p-1,q+1) position. Whenever row position becomes -1 then change it to n-1 and if column position becomes n then change it to 0.
Step 3. If the calculated position is already occupied by a number then decrement the column by 2 and increment the row by 1.
Step 4. Whenever the row position becomes -1 and the column position becomes n, change it to (0,n-2).
Note: Magic Square works best with odd size square matrix.
Submitted by Prateek Saini (Prateek)
Download packets of source code on Coders Packet
Comments