Hàm tạo ma phương bằng mảng động
void maphuong(int n,int **&A){
int h=n/2,c=n/2+1;
int k=1;
while(k<=n*n){
A[h][c]=k;
if(h==0&&k%n!=0){
h=n-1;
c++;
}
else
if(c==n-1&&k%n!=0){
h--;
c=0;
}
else if(k%n==0)
{
if(c==n-2) c=0;
else
if(c==n-1)
c=1;
else
c=c+2;
}
else{
h--;
c++;
}
k++;
}
}