这样一个魔方矩阵:
按以下示例方阵格式,生成一个由自然数1至N^2组成的N阶方阵。
1 3 4 10 11
2 5 9 12 19
6 8 13 18 20
7 14 17 21 24
15 16 22 23 25
注:N不仅限于5。
我的代码:
#include<iostream>
using namespace std;
#define M 100
int Lien( int a)
{
if(a == 1 || a==0)
return a;
else
return a+Lien(a-1);
}
int main()
{
int n = 0;
int num[M][M];
cout<<"please enter a number:"<<endl;
cin>>n;
cout<<endl;
for(int i =0; i<n; i++)
{
for(int j= 0;j<n; j++)
{
if((i+j)%2==0)
if((i+j)>=n)
num[i][j]=n*n-Lien(2*n-1-i-j)+n-j;
else
num[i][j]=Lien(i+j)+i+1;
else
if((i+j)>=n)
num[i][j]=n*n-Lien(2*n-1-i-j)+n-i;
else
num[i][j]=Lien(i+j)+j+1;
cout.width(4);
cout<<num[i][j];
}
cout<<endl;
}
return 0;
}