2017-02-27 14 views
0

アスタリスクで構成された三角形を印刷するには、上に印刷する方法と上に印刷する方法の2つの方法があります。それを印刷することが簡単で、私はしかし、私はそれのように見えるようにする方法を見つけることができません再帰を使用してアスタリック・トライアングルを印刷する

* 
** 
*** 
**** 
***** 

のように見えるのコードに

public static String printTriangleUp(int n) 
{ 
    if(n <= 0) return ""; 

    String p = printTriangleUp(n - 1); 
    p = p + "*"; 
    System.out.println(p); 

    return p; 
} 

を使用して出力を得る

***** 
**** 
*** 
** 
* 

答えて

0

関数のロジックは次のようになります。

printTriangleUp n)の長さの星の行のnダウンだからあなたの再帰呼び出し

1に、 printTriangleUp(n-1)、だろうと、三角形を表示します:長さn-1の星の列で、

印刷三角形1に戻す

これは、欠落している部分が再帰呼び出しの前に実行される必要があるn個の星の一番上の行であることを意味します。

1

最も簡単な方法は、メソッドを呼び出す前にストリングを宣言し、スタックを完全にインクリメントして上に移動し、値を正しい順序でポップすることです。

public static void main(String [] args){ 
    String p = ""; 
    printTriangleDown(5, p); 
} 

public static String printTriangleDown(int n, String p){ 
if(n <= 0) return ""; 

p = p + "*"; 
printTriangleDown(n-1, p); 
System.out.println(p); 

return p; 

}

0

あなたの元のコード私見方法は同じ時間に何かを印刷して、文字列を返す上にあることを、奇妙です。

あなたが作る場合はあなたの2つの問題は簡単になりますクリア機能(もちろん、すべての擬似コード):下向きの三角形のため

printTriangleUp(i) 
    if i == 0 : 
    do nothing 
    else : 
    printTriangUp(i-1) 
    print i stars 

同様に、:

printTriangleDown(i) 
    if i == 0 : 
    do nothing 
    else : 
    print i stars 
    printTriangDown(i-1) 
関連する問題