2

私の先生は、パスカルの三角形に関する問題のテスター クラスを書いてくれました。ここにあります:

public class TestTriangle {
    public static void main(String args[]) {
        PascalsTriangle triangle = new PascalsTriangle(7);
        if (triangle.getElement(5, 2) == 10)
            System.out.println("Triangle has passed one test.");
        else
            System.out.println("Triangle is wrong.");
        triangle.showTriangle();
    }
}

これが私のコードです:

public class PascalsTriangle {
    private int rows;
    private int column;
    private int position;

    /**
     * Constructor for objects of class PascalsTriangle
     */
    public PascalsTriangle() {
        rows = 2;
    }

    public PascalsTriangle(int n) {
        rows = n;
    }

    public int getElement(int n, int k) {
        rows = n;
        column = k;
        //now the equation
        int z;
        int y;
        int d;
        for (z = 1; z <= n; z++) { //z is n! at nominator of equation
            int a = z;
            z = z * n;
            z = a + z;
        }
        for (y = 1; y <= k; y++) { //y is k! at denominator of equation
            int b = y;
            y = y * k;
            y = b + y;
        }
        int c = n - k;
        for (d = 1; d <= c; d++) { //d is (n-k)! at denominator of equation
            int e = d;
            d = d * c;
            d = e + d;
        }
        position = z / (y * d);
        return position;
    }

    public showTriangle() { //outputs entire triangle
    }
}

私が持っている唯一の問題は、showTriangle方法にあります。三角形全体を出力する方法がわかりません。特定の位置を見つけるための式しかない場合、三角形全体をどのように出力しますか?

4

1 に答える 1

0

私はあなたのコードをコンパイルしました。Java では、 の戻り値の型を宣言する必要がありましたshowTriangle()。私はボイドを選びました:

public void showTriangle() 
{
}

テストを実行しました

triangle.getElement(5,2)==10

そして、プログラムは印刷されました

三角形は間違っています。

getElementメソッドが正しい結果を返すと確信していますか? の結果を出力getElement(5,2)して、 を取得しまし0た。

getElement 関数が機能したら、2 つのループで showTriangle() メソッドを実装します。擬似コードでは、次のようになります。行番号 (n) の 1 つのループと列 (k) の 1 つのループ

for i = 0 to n
{
    for j = 0 to k
    {
        System.out.print(getElement(i,j) + " ") //Print triangle value and a space
    }
    System.out.print("\n") //Skip down one line
}
//NOTE: You have to pick the right value of k based on the n.

これは美しくフォーマットされた三角形を出力しませんが、getElement()正しく動作する場合は何かを出力するはずです:

1 
1 1 
1 2 1 
于 2015-01-20T19:38:50.897 に答える