摘要:如圖所示圖片描述輸出結果輸入二維數(shù)組長度創(chuàng)建二維數(shù)組賦值遍歷所賦的值控制轉(zhuǎn)向為右為下為左為上紀錄函數(shù)調(diào)用次數(shù)若超出數(shù)組轉(zhuǎn)向若當前點沒有走過賦值輸出到最后一個數(shù)跳出循環(huán)轉(zhuǎn)向向右走向下走向左走向上走循環(huán)轉(zhuǎn)向
描述
給定一個h行h列的整數(shù)數(shù)組array,要求從array[0][0]元素開始,按回形從外向內(nèi)順時針順序賦值整個數(shù)組。如圖所示: ![圖片描述][1] 輸出結果:4 4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int h = scanner.nextInt();//輸入二維數(shù)組長度 int[][] arr = new int[h][h];//創(chuàng)建二維數(shù)組 setWay(arr,0,0);//賦值 for (int[] p : arr) {//遍歷 for (int p1 : p) { System.out.printf("%-4d",p1); } System.out.println(); } System.out.println(t); } static int p = 1;//所賦的值 static int f = 0;//控制轉(zhuǎn)向 0為右 1為下 2為左 3為上 static int t = 0;//紀錄函數(shù)調(diào)用次數(shù) public static boolean setWay(int[][]map,int i,int j){ if(i==map.length || j ==map.length || i == -1 || j == -1){//若超出數(shù)組 f = (f+1)%4;//轉(zhuǎn)向 t++; return false; } if (map[i][j] == 0) {// 若當前點沒有走過 map[i][j] = p;//賦值 p++; while(p != map.length*map.length+1)//輸出到最后一個數(shù)跳出循環(huán)轉(zhuǎn)向 switch(f){ case 0: if (setWay(map, i, j + 1)) {//向右走 return true; } break; case 1: if (setWay(map, i+1, j )) {// 向下走 return true; } break; case 2: if (setWay(map, i , j-1)) {// 向左走 return true; } break; case 3: if (setWay(map, i-1, j)) {// 向上走 return true; } break; } } f = (f+1)%4;//循環(huán)轉(zhuǎn)向 t++; return false; }
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77877.html
摘要:形式參數(shù)當函數(shù)調(diào)用完成之后就自動銷毀了。函數(shù)調(diào)用傳值調(diào)用函數(shù)的形參和實參分別占有不同內(nèi)存塊,對形參的修改不會影響實參。函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。它其實就數(shù)組訪問的操作符。 ...
摘要:這里執(zhí)行是錯誤的,這樣賦值也是錯誤的因為是個不可知的表示,只存在而且它們分別是指針變量可以用來存放變量地址。 數(shù)組 1、數(shù)組認知: a、靜態(tài)分配空間(int a[1...
摘要:本文只是簡單理解算法,并不會深入的討論。大部分來自數(shù)組部分。如果數(shù)組中每個元素都不相同,則返回。示例輸入輸出加給定一個由整數(shù)組成的非空數(shù)組所表示的非負整數(shù),在該數(shù)的基礎上加一。盡量減少操作次數(shù)。 算法(algorithm),在數(shù)學(算學)和計算機科學之中,為任何良定義的具體計算步驟的一個序列,常用于計算、數(shù)據(jù)處理和自動推理。精確而言,算法是一個表示為有限長列表的有效方法。算法應包含清晰...
摘要:有效三角形的個數(shù)雙指針最暴力的方法應該是三重循環(huán)枚舉三個數(shù)字。總結本題和三數(shù)之和很像,都是三個數(shù)加和為某一個值。所以我們可以使用歸并排序來解決這個問題。注意因為歸并排序需要遞歸,所以空間復雜度為 ...
閱讀 3056·2021-11-25 09:43
閱讀 1651·2021-11-24 11:15
閱讀 2372·2021-11-22 15:25
閱讀 3520·2021-11-11 16:55
閱讀 3256·2021-11-04 16:10
閱讀 2787·2021-09-14 18:02
閱讀 1697·2021-09-10 10:50
閱讀 1083·2019-08-29 15:39