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 |
can main method be overloaded...??? How..????
What are the three main types of variables?
What is encapsulation in simple terms?
Can private class be inherited?
Should you protect the global data in threads? Why or why not?
Why is it so that we can have virtual constructors but we cannot have virtual destructors?
write a program for function overloading?
14 Answers HCL, InfoCity, TATA,
What is abstraction example?
write a program using c++ to implement single contiguous memory mangement techniques.display the content of the main memory after yhe allocation of jobs and percentage of the wastage of the main memory
What is overloading in oop?
What's the full form of STL?
What does and I oop mean in text?