国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

螺旋數組和S形狀數組的打印思路

2019-11-08 01:46:44
字體:
來源:轉載
供稿:網友

題目一 打印如下數組:

思路:將數據按上圖顏色進行區分,分為多層,分別進行打印。記可以看出當層數為奇數時,逆時針打印,層數為偶數時,順時針打印。

public class Q1 { public static void main(String []args){ Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int arr[][]= new int[n][n]; arr[0][0]=1; int i=0,j=1; int num=2; int step=1; while(step<n){ //層數為偶數,從第二層開始打印 while(i<=step){ arr[i][j]=num; num++; i++; } i--; j--; while(j>=0){ arr[i][j]=num++; j--; } j=0; i++; step++; if(step==n) break; //必須對最大層數加以驗證,避免后續操作導致數組越界 //層數為奇數 while(j<=step){ arr[i][j]=num; num++; j++; } j--; i--; while(i>=0){ arr[i][j]=num; num++; i--; } i=0; j++; step++; } //打印數組 for(int ii=0;ii<n;ii++){ for(int jj=0;jj<n;jj++){ System.out.

題目二: 當n=5時,打印如下數組

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

思路:一圈一圈的打印,當n為奇數時,打印圈數是n/2+1,當n為偶數時,打印圈數是n/2

public class first { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int arr[][]=new int[n][n]; //int is=n,js=n; int i=0,j=0; int num=1,step=0; for(int times=((n&1)==1?n/2+1:n/2);times>=0;times--){ //利用n&1來判斷n的奇偶性 while(j<n-step){ arr[i][j]=num++; //num++; j++; } j--; i++; while(i<n-step){ arr[i][j]=num; num++; i++; } i--; j--; while(j>=step){ arr[i][j]=num; num++; j--; } j++; i--; while(i>=step+1){ arr[i][j]=num; num++; i--; } i++; j++; step++;//控制打印的圈數 } //打印數組 for(int ii=0;ii<n;ii++){ for(int jj=0;jj<n;jj++){ System.out.print(arr[ii][jj]+" "); } System.out.println(); } }}

總結:螺旋數組的核心思路就是找出規律,通過控制i,j的變換來有規律的填充數組。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河曲县| 保山市| 定州市| 金堂县| 柯坪县| 调兵山市| 乐亭县| 什邡市| 德江县| 安康市| 关岭| 尼木县| 额敏县| 任丘市| 阳原县| 卓尼县| 祁东县| 石门县| 凤庆县| 利辛县| 昂仁县| 怀来县| 德清县| 大竹县| 北碚区| 堆龙德庆县| 西安市| 壶关县| 唐海县| 开江县| 孝昌县| 富阳市| 瑞安市| 营山县| 铜鼓县| 沙田区| 牟定县| 曲麻莱县| 西乌珠穆沁旗| 随州市| 安徽省|