Java:计算二项式系数

Mas*_*ssU 1 java math

我有以下程序来计算两个整数的二项式系数。但是我想更改程序,它只计算和保存解决方案所需的系数。问题是我现在真的不知道该怎么做。 代码

 public static long binomialIteration(int n, int k)


{
     if(k<0 || n<k)
     {
         return 0;
     }
     long[][] h= new long[n+1][n+1];
     for(int i=0; i<=n; i++)
     {
         h[i][0]=h[i][i]=1;    
     }
     for(int i=1;i<=n;i++)
     {
         for(int j=0; j<=i; j++)
         {
             h[i][j] = (j==0 ? 0: h[i-1][j-1]) + (i == j ? 0 : h[i-1][j]);
         }
     }
     return h[n][k];
 }
Run Code Online (Sandbox Code Playgroud)

Chr*_*ock 5

这个网站的代码怎么样

 private static long binomial(int n, int k)
    {
        if (k>n-k)
            k=n-k;

        long b=1;
        for (int i=1, m=n; i<=k; i++, m--)
            b=b*m/i;
        return b;
    }
Run Code Online (Sandbox Code Playgroud)


Mad*_*tts 5

您是否要保留代码?因为您还可以递归计算二项式系数,这会将您的函数简化为以下四行:

static long binomi(int n, int k) {
        if ((n == k) || (k == 0))
            return 1;
        else
            return binomi(n - 1, k) + binomi(n - 1, k - 1);
    }
Run Code Online (Sandbox Code Playgroud)