2017-12-07 21 views
0

奇数偶数の交互の逆三角形

a+1357+1 
b+246+2 
a+13+3 
b+2+4 

次私のコードですが、これで私は奇妙なしを印刷することができます。またはだけでもno.sほんの数あなたのコードの更新(しかし、非常に読みやすいではない)で

public static void main(String[] args) { 
    int rows = 7; 
    for(int i = rows; i >= 1; i=i-2) { 
     for(int j = 1; j <= i; j=j+2) { 
      System.out.print(j + " "); 
     } 
     System.out.println(); 
    } 
} 
+0

aとbとは何ですか? – scottlittle

+0

パターンをもっと詳しく説明してください。奇数は「a」、偶数は「b」ですか?行番号の末尾に?途中に何桁の数字を入れる必要がありますか?結果は正確に出力例(まさに4行、全く同じ内容)に似ているのでしょうか、あるいは異なる入力が同じようなパターンで異なる結果をレンダリングして、どのようなロジックにするべきでしょうか? –

答えて

2

int rows = 7; 
    for (int i = rows; i >= 1; i = i - 2) { 
     System.out.print((((i + 1) % 4) == 0 ? "a" : "b") + " + "); 
     for (int j = 1; j <= i; j = j + 2) { 
      System.out.print((j + ((i + 2) % 4)/2)); 
     } 
     System.out.println(" + " + (10 - i)/2); 
    } 

しかし、代わりに私のコードを使用して、私はあなたが正確にどのように書き留め示唆します"パターン"が定義され、あなたの仕様に基づいて新しいコードを書く。これらのループは最適ではありません。

2

DEMO

var rows = 4; 
 
for (var i = 4; i > 0; i--) { 
 
    for (var j = 1; j <= i; j++) { 
 
    document.write((i % 2) + (2 * j) - 1 + " "); 
 
    } 
 
    document.write('<br>'); 
 
}

public static void main(String[] args) { 
    int rows = 4; 
    for(int i = rows; i > 0; i--) { 
     for(int j = 1; j <= i; j++) { 
      System.out.print((i%2)+(2*j)-1 + " "); 
     } 
     System.out.println(); 
    } 
} 

あなたはそれのためのパターンを作成する必要があります。ここでは使用できます(i%2)+(2*j)-1