static void Main(string[] args
)
{
Console
.Write("请输入正整数:");
int n
= int.Parse(Console
.ReadLine());
Console
.WriteLine();
int[,] arr
= GetSpiralMatrix(n
);
for (int i
= 0; i
< n
; i
++)
{
for (int j
= 0; j
< n
; j
++)
{
Console
.Write(arr
[j
, i
]);
Console
.Write("\t");
}
Console
.Write("\n");
}
Console
.ReadKey();
}
static int[,] GetSpiralMatrix(int row
)
{
int[,] intArr
= new int[row
, row
];
int x
= 0, y
= 0;
int m
= 1;
string type
= "R";
for (int i
= 1; i
<= row
* row
; i
++)
{
intArr
[x
, y
] = i
;
switch (type
)
{
case "R":
x
++;
if (y
== 0) { type
= "D"; m
++; break; }
if (i
== m
* m
- m
) { type
= "U"; break; }
break;
case "D":
y
++;
if (x
== 0) { type
= "R"; m
++; break;}
if (i
== m
* m
- m
) { type
= "L"; break;}
break;
case "L":
x
--;
if (i
== m
* m
- 1) { type
= "D"; break; }
break;
case "U":
y
--;
if (i
== m
* m
- 1) { type
= "R"; break; }
break;
}
}
return intArr
;
}
转载请注明原文地址: https://lol.8miu.com/read-4847.html