Java程序练习-螺旋矩阵
生活随笔
收集整理的這篇文章主要介紹了
Java程序练习-螺旋矩阵
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
螺旋矩陣
時間限制: 1500ms內(nèi)存限制: 1000kB
描述
生成一個NxN(N>0)的旋轉(zhuǎn)矩陣,N從鍵盤輸入,每4個字符輸出一個數(shù)字,右對齊,從1開始至NxN,順時針成螺旋狀,例如:輸入4則生成1--16的矩陣.
輸入
5 (N)
輸出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
(由于排版有問題,詳看樣例)
樣例輸入
7
樣例輸出
?? 1?? 2?? 3?? 4?? 5?? 6?? 7
? 24? 25? 26? 27? 28? 29?? 8
? 23? 40? 41? 42? 43? 30?? 9
? 22? 39? 48? 49? 44? 31? 10
? 21? 38? 47? 46? 45? 32? 11
? 20? 37? 36? 35? 34? 33? 12
? 19? 18? 17? 16? 15? 14? 13
參考代碼
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {public static void main(String[] args) throws IOException {BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));int N = Integer.parseInt(cin.readLine());int s[][] = new int[N][N];int i = 0,j = 0,k = 0, a = 1;for( ; k < (N+1)/2; k++ ){while( j < N-k )s[i][j++] = a++; i++; j--;while( i < N-k ) s[i++][j] = a++; i--; j--;while( j > k-1 ) s[i][j--] = a++; i--; j++;while( i > k ) s[i--][j] = a++; i++; j++;}for(i = 0;i < N;++ i){for(j = 0;j < N;++ j){System.out.printf("%4d",s[i][j]);}System.out.println();} } } 作者:binfeihan 發(fā)表于2011-10-3 21:24:14 原文鏈接 閱讀:20 評論:0 查看評論
時間限制: 1500ms內(nèi)存限制: 1000kB
描述
生成一個NxN(N>0)的旋轉(zhuǎn)矩陣,N從鍵盤輸入,每4個字符輸出一個數(shù)字,右對齊,從1開始至NxN,順時針成螺旋狀,例如:輸入4則生成1--16的矩陣.
輸入
5 (N)
輸出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
(由于排版有問題,詳看樣例)
樣例輸入
7
樣例輸出
?? 1?? 2?? 3?? 4?? 5?? 6?? 7
? 24? 25? 26? 27? 28? 29?? 8
? 23? 40? 41? 42? 43? 30?? 9
? 22? 39? 48? 49? 44? 31? 10
? 21? 38? 47? 46? 45? 32? 11
? 20? 37? 36? 35? 34? 33? 12
? 19? 18? 17? 16? 15? 14? 13
參考代碼
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {public static void main(String[] args) throws IOException {BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));int N = Integer.parseInt(cin.readLine());int s[][] = new int[N][N];int i = 0,j = 0,k = 0, a = 1;for( ; k < (N+1)/2; k++ ){while( j < N-k )s[i][j++] = a++; i++; j--;while( i < N-k ) s[i++][j] = a++; i--; j--;while( j > k-1 ) s[i][j--] = a++; i--; j++;while( i > k ) s[i--][j] = a++; i++; j++;}for(i = 0;i < N;++ i){for(j = 0;j < N;++ j){System.out.printf("%4d",s[i][j]);}System.out.println();} } } 作者:binfeihan 發(fā)表于2011-10-3 21:24:14 原文鏈接 閱讀:20 評論:0 查看評論
轉(zhuǎn)載于:https://www.cnblogs.com/chenlipp/archive/2011/10/03/2219717.html
總結(jié)
以上是生活随笔為你收集整理的Java程序练习-螺旋矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js获取和设置属性
- 下一篇: 最新版全自动脚本交友聊天平台挂机