所以,我实现了二项式系数
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]