Oo缘来是你oO


posts - 120,comments - 125,trackbacks - 0
                                              蛇行填数

显示效果如下:

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();
        }
    }
}




马嘉楠
jianan.ma@gmail.com

posted on 2006-11-09 13:24 马嘉楠 阅读(482) 评论(0)  编辑  收藏 所属分类: SoureCode

只有注册用户登录后才能发表评论。


网站导航: