我有一個函數可以計算階乘和組合如下。對於一個非常大的數字計算
int faktorial(int n)
{
if((n == 0)||(n == 1))
{
return (1);
}
else
{
return (n * faktorial(n-1));
}
}
int Kombinasi(int x, int y)
{
int n = faktorial(x);
int k = (faktorial(x - y)) * (faktorial(y));
int hasil = n/k;
return (hasil);
}
但是在計算階乘時存在一個問題。 假設我想計算x = 1000和y = 4的組合函數。現有函數的調用階乘函數。但階乘函數不能計算它們。如何解決這個問題呢 ?。抱歉,我的英語很不好。謝謝。
外表到[BigInteger的](https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(V = vs.110)的.aspx)類 – Jonesopolis
階乘爲1000是一個很大的數字,您需要添加數字命名空間並使用bigInteger類,使用算法計算1000的階乘可能需要很長時間,也許使用記憶或其他方法可以提高計算效率 – Overmachine
如果您有興趣非遞歸階乘計算機,你可以在這裏查看我的庫的[this part](https://github.com/spearson/xofz.Core/blob/master/xofz.Core/Framework/Computation/FactorialComputer.cs)。 –