打印蛇形矩阵(我写的太笨了,请达人指点 )。
如下是我的程序,我想得到一个直接根据行列坐标得到相应值的式子,想了半天未遂,请高人指点。
/*
N=4 N=7
1 3 4 10 1 3 4 10 11 21 22
2 5 9 11 2 5 9 12 20 23 34
6 8 12 15 6 8 13 19 24 33 35
7 13 14 16 7 14 18 25 32 36 43
15 17 26 31 37 42 44
16 27 30 38 41 45 48
28 29 39 40 46 47 49
1<=N<=10;
*/
#include <iostream.h>
int sum[20];
void pm(int n)
{
int i,j=0;
int tmp=0;
for(i=0;i<n;i++)
{
tmp+=++j;
sum[i]=tmp;
}
for(i=n;i<2*n-1;i++)
{
tmp+=j--;
sum[i]=tmp;
}
for(i=0;i<n;i++)
{ cout<<endl;
for(j=0;j<n;j++)
cout<<sum[i+j]-((i+j)%2==0?j:i)<<" ";
}
}
void main()
{
pm(10);
}