所以,我实现了二项式系数

public static int binomial(int n, int k) {

    if (k == 0)
        return 1;
    else if (k>n-k)
        return binomial(n, n-k);
    else
        return binomial(n-1,k-1)*n/k;

}





public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    System.out.println("Insert n: ");
    int n = scan.nextInt();

    System.out.println("Insert k: ");
    int k = scan.nextInt();

    System.out.println("Result: "+binomial(n,k));



}


它确实有效,但是我遇到的困难只是我需要为两个给定的数字添加系数数组。因此,如果I n为5并且k为3。系数数组将显示:1 5 10 10.有什么想法吗?

最佳答案

您需要做的就是将表达式放入循环并保持n不变。

      for (int k = 0; k <= n; k++) {
         System.out.print(binomial(n, k) + " ");
      }


您可以根据需要将这些值存储在数组中。无需使您的方法更加复杂。

如果要将其放在数组中,这是一种简单的方法。

  int coefs[] = IntStream.rangeClosed(0,n).map(k->binomial(n,k)).toArray();



  coefs [] = [1、5、10、10、5、1]

07-28 00:00