蛇行填数

简介:
显示效果如下:
1        3        4      

2        5       8 
    

6       7        9

package   Test;
import 
 java.io.BufferedReader;
import 
 java.io.IOException;
import 
 java.io.InputStreamReader;

public   class 
 Main {
    
 public   static   void  main(String[] args)  throws 
 NumberFormatException,
            IOException {
        System.out.println(
 " 请输入数组的大小: " 
);
        BufferedReader br 
 =   new  BufferedReader( new 
 InputStreamReader(System.in));
        
 int  arraySize  = 
 Integer.parseInt(br.readLine());
        
 int [][] a  =   new   int 
[arraySize][arraySize];
        
 int  row  =   0 
;
        
 int  number  =   1 ;         //  准备填充的数字 

         int  snakeLine  =   0 ;     //  snakeLine代表斜行(蛇行)数,由于snakeLine将会用于数组下标的计算,所以从0开始计数 

         
for  (; snakeLine  <   2   *  arraySize  -   1 ; snakeLine ++  ) {
            
 if  (snakeLine  <  arraySize)  //  左上半部分 

            {
                
 if  (snakeLine  %   2   !=   0  //  奇数斜行 

                {
                    
 for  (row  =  snakeLine; row  >=   0 ; row -- 
)
                        a[row][snakeLine 
 -  row]  =  number ++ 
;
                } 
 else 
 {
                    
 for  (row  =  snakeLine; row  >=   0 ; row -- 
)
                        a[snakeLine 
 -  row][row]  =  number ++ 
;
                }
            } 
 else  {  //  右下半部分 

                 if  (snakeLine  %   2   !=   0  ) {
                    
 for  (row  =  arraySize  -   1 ; row  >  snakeLine  -  arraySize; row -- 
)
                        a[row][snakeLine 
 -  row]  =  number ++ 
;
                } 
 else 
 {
                    
 for  (row  =  arraySize  -   1 ; row  >  snakeLine  -  arraySize; row -- 
)
                        a[snakeLine 
 -  row][row]  =  number ++ 
;
                }
            }
        }

        System.out.println(
 " Result as follows:\n " 
);
        
 for  (row  =   0 ; row  <  arraySize; row ++ 
) {
            
 for  (number  =   0 ; number  <  arraySize; number ++ ) {  //  number此处作为数组的下标使用 

                System.out.print(a[row][number]  +   " \t "  );
            }
            System.out.println();
            System.out.println();
        }
    }
}
本文转自BlogJavaOo缘来是你oO的博客,原文链接: 蛇行填数,如需转载请自行联系原博主。
相关文章
|
1月前
lanqiao OJ 664 方格填数
lanqiao OJ 664 方格填数
11 1
|
1月前
|
人工智能 Java BI
lanqiao OJ 111 区间位移
lanqiao OJ 111 区间位移
12 0
|
机器学习/深度学习 算法
杨氏矩阵
杨氏矩阵
28 0
|
6月前
|
Go C++ 算法
C/C++每日一练(20230404) 旋转排序数组最小值、石头剪刀布、三数之和
C/C++每日一练(20230404) 旋转排序数组最小值、石头剪刀布、三数之和
42 0
C/C++每日一练(20230404) 旋转排序数组最小值、石头剪刀布、三数之和
|
6月前
【每日一题Day192】LC1033移动石子直到连续 | 分类讨论 贪心
【每日一题Day192】LC1033移动石子直到连续 | 分类讨论 贪心
32 0
从杨氏矩阵找数
杨氏矩阵,是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述对称和一般线性群的群表示,并研究它们的性质。有一个二维数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N)。
|
存储
每日一题——字符的最短距离
每日一题——字符的最短距离
81 0
每日一题——字符的最短距离
来认识并了解一下:不一样的杨氏矩阵
来认识并了解一下:不一样的杨氏矩阵
101 0
来认识并了解一下:不一样的杨氏矩阵