1003--蛇行列一字型と回字型

3511 ワード

蛇形陣は1字陣と回字陣に分けられ、例えば3*3:
1文字列:文字列:
       1 2 6        7 6 5
       3 5 7        8 1 4
       4 8 9        9 2 3
コード:#include using namespace std; int main() {      int i,j,a[30][30],n,k;      scanf ( "%d" ,&n);      k=1; for (i=0; i {      for (j=0; j<=i; j++)      {          if (i%2==0) a[i-j][j]=k;          else a[j][i-j]=k;          k++;      } } for (i=n; i<2*n; i++) {      for (j=1; j<2*n-i; j++)      {          if (i%2==0) a[n-j][i-n+j]=k;          else a[i-n+j][n-j]=k;          k++;      } }      for (i=0; i      {          printf ( "
"
);          for (j=0; j          {              printf ( "%4d" ,a[i][j]);          }      }
  printf ( "
"
); printf ( "
"
); printf ( "
"
); int I,J,K; int t=n*n; int A[30][30];   for (I=0;I<=n/2;I++)   {    for (J=I;J     A[I][J]=t--;    for (K=I+1;K     A[K][J-1]=t--;    for (J-=2;J>=I;J--)     A[K-1][J]=t--;    for (K-=2;K>I;K--)     A[K][J+1]=t--;   }   for (J=n-1;J>=0;J--)   {    for (K=0;K     printf ( "%4d" ,A[K][J]);    printf ( "
"
);   }
  return 0; }
一字行列は規則に従って行列を上下の2つの三角形に分けます.
5
1
2 3
4 5 6 
7 8 9 10
11 12 13 14 15
16 17 18 19
20 21 22
23 24
25
文字を返すとこの回転の法則に従って2次元マトリクスを入力します