如何编写这样的三角矩阵

输入3 输出
1
6 2
5 4 3
输入4 输出
1
9 2
8 10 3
7 6 5 4

刚写的C#的,回形矩阵的
img
算法一样的,取一半就行

        public static int[,] myMainStep(int n)
        {           
            int[,] mymainRect = new int[n, n];
            int count = 0;
            int step = n;
            //对角线
            for (int m = 0; m < n; m++)
            {
                count++;
                mymainRect[m, m] = count;
            }
            step--;
            for (int i = n - 1; i > 0; i--)
            {
                //左下 往左               
                for (int j = 0; j < step; j++)
                {
                    count++;
                    mymainRect[i, i - j - 1] = count;
                }
                step--;
                //左下往上
                for (int k = 0; k < step; k++)
                {
                    count++;
                    mymainRect[i - k - 1, i - step - 1] = count;
                }
                step++;
                //右上往右
                for (int p = 0; p < step; p++)
                {
                    count++;
                    mymainRect[n - i - 1, n - i - 1 + p + 1] = count;
                }
                step--;
                //右上往下
                for (int q = 0; q < step; q++)
                {
                    count++;
                    mymainRect[n - i - 1 + q + 1, n - i - 1 + step + 1] = count;
                }
                step--;
            }
            return mymainRect;
        }

主要是你要找到规律,每行的最后一个是行号,然后是最后一行开始从右到左,从下到上按顺序打印就可以 了

创建一个二维数组,跑一边双重循环赋值,最后把数组按需要打印出来。
实在想不到控制条件你就干脆把下标依次列出来然后找规律