题目:
给定整数n,输出回形矩阵。例如n=5,输出如下
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
void Main()
{
int n = 5;
int [,] arr = Calc(n);
StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
s.Append(arr[i,j]);
s.Append("\t");
}
s.Append("\n");
}
Debug.Log(s.ToString());
}
int[,] Calc(int n)
{
int[,] arr = new int[n,n];
int i, j;
int start = 0;
int end = n-1;
int num = 1;
while (true)
{
//上
for (i = j = start; j <= end; j++)
{
arr[i,j] = num++;
}
//右
for (i++,j--; i <= end; i++)
{
arr[i, j] = num++;
}
//下
for (i--,j--; j >= start; j--)
{
arr[i, j] = num++;
}
//左
for (i--, j++; i > start; i--)
{
arr[i, j] = num++;
}
start++;
end--;
if (start > end)
{
break;
}
}
return arr;
}