1003--蛇行列一字型と回字型
3511 ワード
蛇形陣は1字陣と回字陣に分けられ、例えば3*3:
1文字列:文字列:
1 2 6 7 6 5
3 5 7 8 1 4
4 8 9 9 2 3
コード:
一字行列は規則に従って行列を上下の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次元マトリクスを入力します
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次元マトリクスを入力します