一個正整數的 階乘( factorial)是所有小於及等於該數的正整數的積,並且0的階乘為1。自然數n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。亦即n!=1×2×3×...×(n-1)×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n
根據定義,用遞歸的方式獲取階乘。
1 /// <summary> 2 /// 遞歸獲取階乘 3 /// </summary> 4 /// <param name="i">乘數</param> 5 /// <param name="max">階乘</param> 6 /// <param name="result">當前結果</param> 7 /// <returns></returns> 8 public int nFactorial(int i, int max, int result) { 9 if (i <= max) { 10 result *= i; 11 result = nFactorial(i + 1, max, result); 12 } 13 return result; 14 }
當然,我們更習慣直接用循環獲取階乘。
1 /// <summary> 2 /// 循環獲取階乘 3 /// </summary> 4 /// <param name="n"></param> 5 /// <returns></returns> 6 public int nFactorial_while(int n) { 7 int result = 1; 8 if (n <= 0) { 9 return 1; 10 } 11 for (int i = 1; i <= n; i++) { 12 result *= i; 13 } 14 return result; 15 }
