zoukankan      html  css  js  c++  java
  • 打印回型矩阵

    n=1              n=2                          n = 3

    3   2           4    3     2                15    14     13     12

    0   1           5    0     1                4       3       2      11

                      6    7     8                5       0       1      10

                                                    6        7       8      9

    如何打印这个回型数据?

    现在只实现了如何打印偶数位的,因为奇偶数的最大值不同,但是基本思路还是一样的。自己要用的可以再写。

    奇数的最大值((n+1)*(n+1) - 1)在左上角,而偶数的是在右下角。

     1 private static void GetTheGUIFromCount(int v_int, ref int[,]v_arr)
     2         {
     3             int[,] lv_arry= new int[v_int+1, v_int+1];
     4 
     5             //临时行数
     6             int lv_TempRow = 0;
     7 
     8             //临时列数
     9             int lv_TempCol = 0;
    10 
    11             //记录当前最大没有被填充的行数
    12             int lv_maxRow = 0;
    13 
    14             //记录当前最小没有被填充的行数
    15             int lv_minRow = 0;
    16 
    17             //记录当前最大没有被填充的列数            
    18             int lv_maxCol = 0;
    19 
    20             //记录当前最小没有被填充的列数            
    21             int lv_minCol = 0;
    22 
    23             //赋值数据
    24             int i = 0;
    25 
    26             //偶数打印,其最大值在右下角
    27             if (v_int % 2 == 0)
    28             {
    29                 i = (v_int+1)*(v_int+1)-1;
    30                 lv_TempRow = v_int;
    31                 lv_TempCol = v_int;
    32                 lv_maxRow = v_int;
    33                 lv_maxCol = v_int;
    34                 lv_arry[lv_TempRow, lv_TempCol] = i;
    35                 while (i != 0)
    36                 {
    37                     //从右向左填充数据
    38                     if (lv_TempCol == lv_maxCol && lv_TempRow == lv_maxRow)
    39                     {
    40                         //设置最小列数
    41                         while (lv_arry[lv_TempRow, lv_minCol] != 0 && lv_minCol < v_int)
    42                             lv_minCol++;
    43                         while (lv_minCol < lv_TempCol)
    44                         {
    45                             lv_TempCol--;
    46                             i--;
    47                             lv_arry[lv_TempRow, lv_TempCol] = i;
    48                         }
    49                     }
    50 
    51                     //从下到上方向填充数据
    52                     if (lv_TempCol == lv_minCol && lv_TempRow == lv_maxRow)
    53                     {
    54                         //设置最小行数
    55                         while (lv_arry[lv_minRow, lv_TempCol] != 0 && lv_minRow < v_int)
    56                             lv_minRow++;
    57                         while (lv_minRow < lv_TempRow)
    58                         {
    59                             lv_TempRow--;
    60                             i--;
    61                             lv_arry[lv_TempRow, lv_TempCol] = i;
    62                         }
    63                             
    64                     }
    65 
    66                     //从左到右填充数据
    67                     if (lv_TempCol == lv_minCol && lv_TempRow == lv_minRow)
    68                     {
    69                         while (lv_arry[lv_TempRow, lv_maxCol] != 0 && lv_maxCol >0)
    70                             lv_maxCol--;
    71                         while (lv_maxCol > lv_TempCol)
    72                         {
    73                             lv_TempCol++;
    74                             i--;
    75                             lv_arry[lv_TempRow, lv_TempCol] = i;
    76                         }
    77                     }
    78 
    79                     //从上到下填充数据
    80                     if (lv_TempCol == lv_maxCol && lv_TempRow == lv_minRow)
    81                     {
    82                         while (lv_arry[lv_maxRow, lv_TempCol] != 0 && lv_maxRow>0)
    83                             lv_maxRow--;
    84                         while (lv_maxRow > lv_TempRow)
    85                         {
    86                             lv_TempRow++;
    87                             i--;
    88                             lv_arry[lv_TempRow, lv_TempCol] = i;
    89                         }
    90                     }
    91                 }
    92             }
    93 
    94             v_arr = lv_arry;            
    95         }
     
  • 相关阅读:
    [模板]KMP
    [BZOJ] 1833: [ZJOI2010]count 数字计数
    [BZOJ] 1563: [NOI2009]诗人小G
    [BZOJ] 2442: [Usaco2011 Open]修剪草坪
    [LOJ] #2360. 「NOIP2016」换教室
    9.18模拟赛
    [BZOJ] 2006: [NOI2010]超级钢琴
    [BZOJ] 1143: [CTSC2008]祭祀river
    [51Nod] 1218 最长递增子序列 V2
    [BZOJ] 3307: 雨天的尾巴
  • 原文地址:https://www.cnblogs.com/alexzp/p/3360852.html
Copyright © 2011-2022 走看看