蛇行填数

简介:
显示效果如下:
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的博客,原文链接: 蛇行填数,如需转载请自行联系原博主。
相关文章
|
12月前
|
算法 测试技术 C++
C++二分算法习题:判断是否是完全平方数[容易]和排列箱子[容易]
C++二分算法习题:判断是否是完全平方数[容易]和排列箱子[容易]
|
5月前
每日一题——圆圈中最后剩下的数字(约瑟夫环问题)
每日一题——圆圈中最后剩下的数字(约瑟夫环问题)
|
5月前
|
人工智能 Java C++
数字三角形
数字三角形
30 0
|
机器学习/深度学习 算法 网络协议
算法思想之n-皇后问题
算法思想之n-皇后问题
|
存储
每日一题——字符的最短距离
每日一题——字符的最短距离
75 0
每日一题——字符的最短距离
哥德巴赫猜想——偶数
将6-99之间的偶数都表示成两个素数之和,输出时每行输出5组。
184 0
AcWing 822. 走方格
AcWing 822. 走方格
76 0
AcWing 822. 走方格