皎y月
2021-07-05 14:36
采纳率: 100%
浏览 28

对角线的回形矩阵怎么输出

img

img

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • Iawfy_ 2021-07-06 15:21
    已采纳
       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;
            }

    这样

    打赏 评论
  • CSDN专家-link 2021-07-05 14:48

    有点复杂,1-5和其它的规律似乎不一致
    从5开始,根据下标考虑,如果横坐标>=5,那么纵坐标变为--,横坐标保持4;如果纵坐标<0,那么纵坐标保持为0,横坐标--,如果横坐标<0,则横坐标保持为0,纵坐标++,如果纵坐标>=5,那么纵坐标保持为4,横坐标++
    如果下一个格已经有数据,那么往顺时针方向找个空的,这里从19找到20有点啰嗦。

    打赏 评论
  • jinting2010 2021-07-05 17:48

    1 22 23 24 25 26 27 28
    21 2 44 45 46 47 48 29
    20 43 3 58 59 60 49 30
    19 42 57 4 64 61 50 31
    18 41 56 63 5 62 51 32
    17 40 55 54 53 6 52 33
    16 39 38 37 36 35 7 34
    15 14 13 12 11 10 9 8

    这样对吗?

    打赏 评论
  • jinting2010 2021-07-05 17:50

    1 22 23 24 25 26 27 28
    21 2 44 45 46 47 48 29
    20 43 3 58 59 60 49 30
    19 42 57 4 64 61 50 31
    18 41 56 63 5 62 51 32
    17 40 55 54 53 6 52 33
    16 39 38 37 36 35 7 34
    15 14 13 12 11 10 9 8

    打赏 评论
  • Iawfy_ 2021-07-06 15:23

    img

    打赏 评论

相关推荐 更多相似问题