2017-11-16 9 views
-2

数値ピラミッドを作成しようとしていますが、適切な条件を見つけるために問題があります。数値ピラミッドを作成する:条件を正しく取得する

int n = scanner.nextInt(); 
int a; 
for(int q = 1; q<=n;q++) 
{ 
    for(int space = 0; space<n-q;space++){ 
     System.out.print(" "); 
    } 
    a=1; 
    for(int p = 1; p<=q;p++) 
    { 
     if((p<=q/2 && p!=1)) {       
      a++; 
     } 
     else if((p!=1) && (p>q/2+1)){ 
      a--; 
     } 
     System.out.print(a+" "); 
    } 
    System.out.println(); 
} 

これは適切なピラミッドを作成しますが、不均一な行は早期に終了するように停止します。

|| ((p%2==1) && (p<=q/2+1) && (p!=1)) 

しかし、それは何らかの形で罰金働いていた私の偶数行を、変更を:それは増大した場合

は、それから私はに加えます。私は本当に理由を知りません。

ピラミッドが行

1 
    1 1 
    1 2 1 
1 2 2 1 
1 2 3 2 1 

ウィットの可変量で、このように見えることになっている、それがなければ、この

  1 
     1 1 
     1 1 0 
     1 2 3 2 
    1 2 3 2 1 
    1 2 3 3 2 1 
    1 2 3 3 2 1 0 
    1 2 3 4 5 4 3 2 
1 2 3 4 5 4 3 2 1 
1 2 3 4 5 5 4 3 2 1 

のような追加条件が

これを見
  1 
     1 1 
     1 1 0 
     1 2 2 1 
    1 2 2 1 0 
    1 2 3 3 2 1 
    1 2 3 3 2 1 0 
    1 2 3 4 4 3 2 1 
1 2 3 4 4 3 2 1 0 
1 2 3 4 5 5 4 3 2 1 
+0

あなたの番号のピラミッドはパスカルの三角形と呼ばれている... – assembler

+4

はまあ無しそれはdownratingのため申し訳ありません –

+0

をaintのが、私たちは –

答えて

1

、これを試してみてくださいそれは動作します:

あなたが許可されていないとき
int number = 5; 
for (int i = 0; i < number; i++) { 
    int x = 1; 
    for (int j = 0; j < (number + i); j++) { 
     if (j < number - i - 1) { 
      System.out.print(" "); 
     } else { 
      System.out.print(x); 
      if (j < (number - 1)) { 
       x++; 
      } else { 
       x--; 
      } 
     } 
    } 
    System.out.println(" "); 
} 
+0

ありがとう:-) –

+0

いつでも、いつでも... – assembler

関連する問題