对于给定的数字,以下列格式打印矩阵

Sil*_*ley -2 c#

对于给定的数字,n我必须打印以下矩阵(n = 3示例):

 3 3 3 3 3 
 3 2 2 2 3 
 3 2 1 2 3 
 3 2 2 2 3 
 3 3 3 3 3 
Run Code Online (Sandbox Code Playgroud)

行数和列数应该是(2 * n) - 1.我试图找到模式,但无法弄明白.任何帮助都会有所帮助.谢谢

Dmi*_*nko 5

像这样的东西:

private static int[][] Matrix(int n) {
  // Create arrays
  int[][] result = Enumerable.Range(0, 2 * n - 1)
    .Select(_ => new int[2 * n - 1])
    .ToArray();

  // Feed arrays
  for (int i = 1; i <= n; ++i) {
    int from = i - 1;
    int to = 2 * n - i - 1;
    int v = n - i + 1;

    for (int j = from; j <= to; ++j) {
      result[from][j] = v;
      result[to][j] = v;
      result[j][from] = v;
      result[j][to] = v;
    }
  }

  return result;
}

....

int n = 3;

String report = String.Join(Environment.NewLine, Matrix(n)
  .Select(line => String.Join(" ", line)));

Console.Write(report);
Run Code Online (Sandbox Code Playgroud)

输出n = 3

   3 3 3 3 3
   3 2 2 2 3
   3 2 1 2 3
   3 2 2 2 3
   3 3 3 3 3
Run Code Online (Sandbox Code Playgroud)

并为n = 4:

   4 4 4 4 4 4 4
   4 3 3 3 3 3 4
   4 3 2 2 2 3 4
   4 3 2 1 2 3 4
   4 3 2 2 2 3 4
   4 3 3 3 3 3 4
   4 4 4 4 4 4 4
Run Code Online (Sandbox Code Playgroud)