簡體   English   中英

Java數組打印楔形圖案

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM