[英]java array printing wedge pattern
我必須編寫一個方法,其中需要一個整數(如下所示)。 例如,如果n為3,它將打印[1,2,3,2,1],而5將打印[1,2,3,4,5,4,3,2,1]需要幫助環!
public static int[] createWedge(int n) {
//precondition: n > 0
int[] arr = new int[n+n-1];
int i;
for(i = 0; i < n; i++) {
arr[i] = i + 1;
}
for(int g = i; g < n; i--) {
arr[g] = g - 1;
}
//dummy return value
return arr;
}
任何幫助都會很棒。 謝謝!
嘗試這個。 遍歷前半部分1-n,然后遍歷下半部分n-1至1。
for (int i = 0; i < n; i++)
arr[i] = i + 1;
int j = n;
for (int g = n - 1; g > 0; g--)
arr[j++] = g;
j也可以稱為位置,因為它跟蹤設置為該值的數組中的位置。
Jase已經發布了正確的答案,但是我將其稍作重寫以查看它是否對您有所幫助
public static int[] createWedge(int n) {
int[] arr = new int[n+n-1];
for (int i = 0; i < n; i++)
arr[i] = i + 1;
for (int g = n - 1, j = n; g > 0; g--, j++)
arr[j] = g;
return arr;
}
就像在第一個循環中一樣,我們需要一個不斷增加的計數器。 這是我們在數組中的位置。 在Jase的解決方案中,這個叫做j
。
但是我們還需要另一個計數器下降。 這是我們放入數組中的數字。 它從n倒數到1。這就是g
。 當g
等於0時我們停止。這就是為什么我們有繼續條件g > 0
。
您的第一個for循環更容易,因為兩個計數器的相同之處即i
。 它上升到數組中的位置並增加了要放入數組中的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.