2012-04-22 18 views
0

パスカルの三角形を1つのループで書くことはできますか?私は複数のループを使用してそれを書いており、うまくいきます。私は、その後の冒頭で、入力として、あなたが生成したい三角形の行数を受け取るメソッドを作成し、ヒントとしてパスカル三角形を1つのループに入れます

+2

はい、それは確かに可能です。 –

+0

これで助けてください。 – mohammedsuhail

+4

私はあなたの特定の質問に答えました。あなたがもっと助けを必要とするなら、あなたはここでドリルを知っています - あなたが最初に!あなたの試行や別の*特定の*質問を見てみましょう。 –

答えて

1

ヘックは、私は答えに私のコメントを作ってあげますメソッドは、これが変換される項目の総数を計算してから、すべての項目についてforループループを実行します。ループ内では、現在の行と現在の列を簡単に計算し、この情報を使用して項目値を作成することができます。

0

したいコードがHere

または

package net.yogesh.test; 

import java.util.ArrayList; 
import java.util.List; 

public class pascal3 { 

    public static void main(String[] args) { 

     int noOfRows = 10; 
     int counter = 1; 
     List<Integer> list = new ArrayList<Integer>(); 
     list.add(1); 

     list = itMe(list, counter,noOfRows); 
    } 

    public static List<Integer> itMe(List<Integer> list, int counter,int noOfRows) { 
     System.out.println(list); 

     List<Integer> tempList = new ArrayList<Integer>(); 

     tempList.add(1); 
     for (int i = 1; i < list.size(); i++) { 
      tempList.add(list.get(i) + list.get(i-1)); 
     } 
     tempList.add(1); 

     if(counter != noOfRows) 
      itMe(tempList, ++counter,noOfRows); 

     return tempList; 
    } 
} 

で予想通り、ここで出力は

ですが、あなたがフォーマットされたビューにしたい場合は、使用する必要があるよりも、余分なループ。

出力

[1] 
[1, 1] 
[1, 2, 1] 
[1, 3, 3, 1] 
[1, 4, 6, 4, 1] 
[1, 5, 10, 10, 5, 1] 
[1, 6, 15, 20, 15, 6, 1] 
[1, 7, 21, 35, 35, 21, 7, 1] 
[1, 8, 28, 56, 70, 56, 28, 8, 1] 
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]