蛇行填数

简介:
显示效果如下:
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的博客,原文链接: 蛇行填数,如需转载请自行联系原博主。
相关文章
|
3月前
lanqiao OJ 664 方格填数
lanqiao OJ 664 方格填数
19 1
|
8月前
|
算法 测试技术 C#
【单调栈】【区间合并】LeetCode85:最大矩形
【单调栈】【区间合并】LeetCode85:最大矩形
|
8月前
|
机器学习/深度学习 移动开发 算法
n-皇后问题
n-皇后问题
37 0
【LeetCode-每日一题】-120. 三角形最小路径和
【LeetCode-每日一题】-120. 三角形最小路径和
|
存储
每日一题——三数之和(双指针)
每日一题——三数之和(双指针)
|
机器学习/深度学习
N 皇后
N 皇后
107 0
N 皇后
AcWing 822. 走方格
AcWing 822. 走方格
83 0
AcWing 822. 走方格
|
移动开发
【30. n-皇后问题】
**DFS俩个核心** - **回溯** - **剪枝**:提前可以判断该方案不合法,所以没有必要继续往下搜了,直接把下面减掉直接回溯。
111 0
【30. n-皇后问题】

热门文章

最新文章