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 new operator in c++
write a program in c++ to overload the function add (s1,s2) where s1 and s2 are integers and floating point values.
i have to create a view in SQL as like in ORACLE DATA EXPRESS EDITION
How to improve object oriented design skills?
What is abstraction in oops?
What is this interview room ? Is it a class or an object.
There are 2 classes defined as below public class A { class B b; } public class B { class A a; } compiler gives error. How to fix it?
#include <stdio.h> #include <alloc.h> #include <stdlib.h> #include <conio.h> void insert(struct btreenode **, int); void inorder(struct btreenode *); struct btreenode { struct btreenode *leftchild; struct btreenode *rightchild; int data; }; main() { struct btreenode *bt; bt=(struct btreenode *)NULL; int req,i=1,num; clrscr(); printf("Enter number of nodes"); scanf("%d",&req); while(i<=req) { printf("Enter element"); scanf("%d",&num); insert(&bt,num); i++; } inorder(bt); } void insert(struct btreenode **sr, int num) { if(*sr==NULL) { *sr=(struct btreenode *)malloc (sizeof(struct btreenode)); (*sr)->leftchild=(struct btreenode *)NULL; (*sr)->rightchild=(struct btreenode *)NULL; (*sr)->data=num; return; } else { if(num < (*sr)->data) insert(&(*sr)->leftchild,num); else insert(&(*sr)->rightchild,num); } return; } void inorder(struct btreenode *sr) { if(sr!=(struct btreenode *)NULL) { inorder(sr->leftchild); printf("\n %d",sr->data); inorder(sr->rightchild); } else return; } please Modify the given program and add two methods for post order and pre order traversals.
Program to read a comment string
What is meant by multiple inheritance?
what is difference between objects and function
write a program to find 2^n+1 ?