111,093
社区成员




int size = 10;
int i=1;
int x = 0;
int y = 0;
int[,] A = new int[size, size];
for (int j = 0; j < size; j++)
{
for (int k = 0; k < size; k++)
{
A[j, k] = 0;
}
}
int flag = size * (size + 1) / 2;
while (i <= flag)
{
if (x + 1 < size)
{
if (A[x + 1, y] == 0)
{
A[x, y] = i;
i++;
x++;
continue;
}
}
if (y + 1 < size)
{
if (y <= x)
{
if (A[x, y + 1] == 0)
{
A[x, y] = i;
i++;
y++;
continue;
}
}
}
while (A[x, y] == 0)
{
A[x, y] = i;
i++;
if (A[x - 1, y - 1] == 0)
{
x--;
y--;
}
else
{
x++;
break;
}
}
}
for (int j = 0; j < size; j++)
{
for (int k = 0; k <= j; k++)
{
Console.Write("{0}\t", A[j,k]);
if (j == k)
{
Console.WriteLine();
}
}
}
Console.ReadLine();
int n = 6;
int[,] arr = new int[n, n];
arr[0, 0] = 1;
int X=0,Y=0;
for (int i = 0; i < n; i++)
{
for (int k = 0; k < n - i; k++)
{
if (i % 3 == 1)
{
arr[X, Y] = arr[X, Y - 1] + 1;
if (k == n - i - 1)
{
X--;
Y--;
break;
}
Y++;
}
if (i % 3 == 0)
{
if (X - 1 < 0)
{
X++;
continue;
}
arr[X, Y] = arr[X - 1, Y] + 1;
if (k == n - i - 1)
{
Y++;
break;
}
X++;
}
if (i % 3 == 2)
{
if (X < 0 || Y < 0)
continue;
arr[X, Y] = arr[X + 1, Y + 1] + 1;
if (k == n - i - 1)
{
X++;
break;
}
X--;
Y--;
}
}
}