how can we design a magic square in c++?or suggest me the
basic idea of it.
Answers were Sorted based on User's Feedback
Answer / ganesh kundapur
Detail about the magic square
http://en.wikipedia.org/wiki/Magic_square.
To design a matrix sqaure, consider a 3X3 matrix.
n = 3;
* Fill the matrix with 0 or X. Start from the middle of the
first row ( i = 0, j = n/2)
+--+--+--+
|X_|1_|X_|
|X_|X_|X_|
|X_|X_|X_|
*. From 1, Go up rt corner(no row, and last column)(-1, 2),
and come down. and fill the next number at (2, 2)
X 1 X
X X X
X X 2
*. From 2, go right up corner( No column, 2nd row)(1, -1)
and if not any column, take a left and fill the next number
at (1, 0)
X 1 X
3 X X
X X 2
* From 3, go right up(0,1), It's already accupied, so come
down(2, 0) and fill the next number at (2,0)
X 1 X
3 X X
4 X 2.
* From node 4(2,0), up right up (1, 1), Its not accupied,
fill the next number at (1, 1)
X 1 X
3 5 X
4 X 2.
* From 5(1,1), Go right up(0,2) and its not accupied, fill
the next number at (0, 2)
X 1 6
3 5 X
4 X 2
* From x(0,2), go right up(No row, no column), so come down
from 6(1, 2), Its not accupied fill with the next number 7
at (1, 2)
X 1 6
3 5 7
4 X 2
* From 7(1, 2), Go up rt(1st row, no column), so take a left
and fill the unfilled node (0, 0)
8 1 6
3 5 7
4 X 2
* From 8(0,0), take up rt( No row, 1st column), come down
and fill the unfilled node at ( 2, 1)
8 1 6 sum = 15
3 5 7 sum = 15
4 9 2 sum = 15
sum 15 15 15
Diagonal sum = 15
Fallow the same procedure for 5X5, 7X7 square.
Is This Answer Correct ? | 8 Yes | 3 No |
Answer / ganesh kundapur
void check(int *i,int *j,int n)
{
if(*i<0 && *j>=n) {
*i=*i+2;
*j=*j-1;
}
if(*i<=0 && *j<n)
*i=n-1;
if(*i>=0 && *j>=n)
*j=0;
}
/* n is the order of matrix 1, 3, 5... */
void DrawMagicTriangle(int n)
{
int **m;
int i, j, t, k = 0;
m=(int **)malloc(n*sizeof(int));
for(i=0; i<n; i++)
*(m+i)=(int *)malloc(n*sizeof(int));
for(i=0; i<n; i++)
for(j=0; j<n; j++)
m[i][j]=0;
i=0;
j=n/2;
for(t=0; t<n*n; t++) {
m[i][j]=++k;
i--;
j++;
if(i>=0 && j<n && m[i][j]!=0) {
i+=2;
j--;
}
else if(i>=0 && j<n && m[i][j]==0) {
i=i;
j=j;
}
else check(&i,&j,n);
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++)
printf(" %d",m[i][j]);
printf("\n");
}
}
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / anu
I don't understand above answer.... can anyone explain in
detail...?? plz.....
Is This Answer Correct ? | 0 Yes | 2 No |
What is object-oriented programming? Webopedia definition
What is the point of oop?
Which is the parameter that is added to every non-static member function when it is called?
why the argument is passed by reference to a copy constructor?example?
Why do we use class?
just right the logic of it 1--> If few people are electing then every time ur candidate should win 2--> arrange books in box, if box carry weight == books weight then take another box..... find the no of box required.
what is difference between objects and function
Prepare me a program for the animation of train
i have to create a view in SQL as like in ORACLE DATA EXPRESS EDITION
What is the different between Applet and Application?
what is the difference between ERROR and EXCEPTION?
why reinterpret cast is considered dangerous?