12

割り当ては、配列を使用せずにパスカルの三角形を作成することです。以下の三角形の値を生成するメソッドがあります。このメソッドは、ユーザーが印刷したい最大行数の整数を受け入れます。

public static void triangle(int maxRows) {
    int r, num;
    for (int i = 0; i <= maxRows; i++) {
        num = 1;
        r = i + 1;
        for (int col = 0; col <= i; col++) {
            if (col > 0) {
                num = num * (r - col) / col;    
            }
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

三角形のように見えるように、三角形の値をフォーマットする必要があります。

              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

私は一生、それを行う方法を理解できません。私はJavaプログラミングの初心者であることを念頭に置いて回答してください。

4

8 に答える 8

12
public static long pascalTriangle(int r, int k) {
    if (r == 1 || k <= 1 || k >= r) return 1L;
    return pascalTriangle(r - 1, k - 1) + pascalTriangle(r - 1, k);
}

このメソッドを使用すると、r 番目の行の k 番目の値を見つけることができます。

于 2016-04-09T01:36:00.207 に答える
1
import java.util.*;
class Mine {
    public static void main(String ar[]) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 1; i < n; i++) {
            int size = 1;
            for (int j = 1; j <= i; j++) {
                int a[] = new int[size];
                int d[] = new int[size];
                for (int k = 1; k <= size; k++) {
                    a[1] = 1;
                    a[size] = 1;

                    for (int p = 1; p <= size; p++) {
                        d[p] = a[p];
                    }

                    if (size >= 3) {
                        for (int m = 2; m < size; m++) {
                            a[m] = d[m] + d[m - 1];
                        }
                    }
                }

                for (int y = 0; y < size; y++) {
                    System.out.print(a[y]);
                }
                System.out.println(" ");
            }
            ++size;
        }
    }
}
于 2014-11-17T16:06:14.627 に答える
-1

コードはパスカル三角形を完全に出力します:

public static void main(String[] args) {
    int a, num;

    for (int i = 0; i <= 4; i++) {
        num = 1;
        a = i + 1;

        for (int j = 4; j > 0; j--) {
            if (j > i)
                System.out.print(" ");
        }

        for (int j = 0; j <= i; j++) {
            if (j > 0)
                num = num * (a - j) / j;

            System.out.print(num + " ");
        }
        System.out.println();
    }
}

出力:

    1 
   1 1 
  1 2 1 
 1 3 3 1 
1 4 6 4 1 
于 2016-09-22T05:36:17.347 に答える