顯示效果如下:
1
???? ?
3
???? ?
4
????
2 ??? ?? 5 ????? 8 ????
6 ??? ? 7 ???? ? 9
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( " 請輸入數(shù)組的大小: " );
????????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 ;???????? // ?準(zhǔn)備填充的數(shù)字
???????? int ?snakeLine? = ? 0 ;???? // ?snakeLine代表斜行(蛇行)數(shù),由于snakeLine將會用于數(shù)組下標(biāo)的計(jì)算,所以從0開始計(jì)數(shù)
???????? for ?(;?snakeLine? < ? 2 ? * ?arraySize? - ? 1 ;?snakeLine ++ )?{
???????????? if ?(snakeLine? < ?arraySize)? // ?左上半部分
????????????{
???????????????? if ?(snakeLine? % ? 2 ? != ? 0 )? // ?奇數(shù)斜行
????????????????{
???????????????????? 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此處作為數(shù)組的下標(biāo)使用
????????????????System.out.print(a[row][number]? + ? " \t " );
????????????}
????????????System.out.println();
????????????System.out.println();
????????}
????}
}
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( " 請輸入數(shù)組的大小: " );
????????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 ;???????? // ?準(zhǔn)備填充的數(shù)字
???????? int ?snakeLine? = ? 0 ;???? // ?snakeLine代表斜行(蛇行)數(shù),由于snakeLine將會用于數(shù)組下標(biāo)的計(jì)算,所以從0開始計(jì)數(shù)
???????? for ?(;?snakeLine? < ? 2 ? * ?arraySize? - ? 1 ;?snakeLine ++ )?{
???????????? if ?(snakeLine? < ?arraySize)? // ?左上半部分
????????????{
???????????????? if ?(snakeLine? % ? 2 ? != ? 0 )? // ?奇數(shù)斜行
????????????????{
???????????????????? 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此處作為數(shù)組的下標(biāo)使用
????????????????System.out.print(a[row][number]? + ? " \t " );
????????????}
????????????System.out.println();
????????????System.out.println();
????????}
????}
}
馬嘉楠
jianan.ma@gmail.com