算法:矩阵螺旋输出
(2010-03-07 21:48:03)
class
Program
{
public static int[,] output(int num)
{
int n = num;
int k = 0;
int i = 0;
int j = 0;
int[,] a=new int[10,10];
MyStack s = new MyStack(50);
for (i = 0; i < num; i++)
{
if (i % 2 == 0)
{
for (j = 0; j < num; j++)
{
a[i, j] = i * n + j + 1;
}
}
else
{
for (k = 0; k < num; k++)
{
s.push(a[i, j] = i * n + k + 1);
}
for (j = 0; j < num; j++)
{
a[i, j] = s.pop();
}
}
}
return a;
}
public static void reverse(int[] a)
{
for (int i = 0; i < a.Length; i++)
{
}
}
static void Main(string[] args)
{
int[,] s = new int[10, 10];
int k=4;
s = output(k);
for (int i = 0; i < k; i++)
{
for (int j = 0; j < k; j++)
{
Console.Write(s[j,i]);
Console.Write(" ");
}
Console.WriteLine();
}
Console.ReadKey();
}
}
|