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



how can we design a magic square in c++?or suggest me the basic idea of it...

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

how can we design a magic square in c++?or suggest me the basic idea of it...

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

how can we design a magic square in c++?or suggest me the basic idea of it...

Answer / anu

I don't understand above answer.... can anyone explain in
detail...?? plz.....

Is This Answer Correct ?    0 Yes 2 No

Post New Answer

More OOPS Interview Questions

What is data binding?

4 Answers   Ittiam Systems,


What is an interface in oop?

0 Answers  


i ahve v low % in 12th n BSC which is aroun 50 coz science was imposed on me......nw m doin MCA n my aggregate in above 74%,what shud i say if asked about low previous percentage??????

4 Answers  


How to create a comment page in C #??

2 Answers  


How to call a non virtual function in the derived class by using base class pointer

3 Answers   HCL,






What does and I oop mean?

0 Answers  


What is the use of fflush(stdin) in c++?

4 Answers   HCL,


What is Iteration Hierarchy? What is what is Object behavioral concept?

1 Answers  


You attempt to query the data base with this command: SELECT name, salary FROM employee WHERE salary=(SELECT salary FROM employee WHERE last name='Wagner' OR dept no=233) Choose most appropriate option from the following: 1)Sub-queries are not allowed in the where clause. 2)a multiple row sub-query used with a single row comparison operator. 3)a single row query is used with a multiple row comparison operator.

10 Answers   Zycus Infotech,


what are the characteristics of oops?

7 Answers   NIIT,


define oops concept with example

1 Answers   Cap Gemini,


What is the point of polymorphism?

0 Answers  


Categories