Description
阶乘 n!
n 的阶乘 (factorial) 可表示为 f(n) = n! = n*(n-1)*(n-2)*…*2*1. ,其中(n <= 20)
请编写函数,使用递归的方法求 n! ,在主函数中输入一个整数 n,调用这个函数,
测试函数是否正确。
请完善以下的阶乘函数double factoral(int n),以递归的方式实现。
只要提交函数实现即可:
double factoral(int n)
{
// 完善你的函数实现,采用递归函数的方式,不要用循环迭代的方式
}
循环方式实现请回去后以作业形式上交。
Input
none
Output
none
挺简单的题
递归方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 double factoral (int n) 2 { 3 if ( n == 0 || n == 1 ) /* exception and the base case */ 4 { 5 return 1; 6 } 7 else /* recursive step */ 8 { 9 return ( n * factoral (n - 1) ); 10 } 11 }
迭代方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 double factoral (int n) 2 { 3 int i; /* the counter */ 4 double fac = 1; /* the factorial to calculate*/ 5 6 if ( n == 0 || n == 1 ) 7 { 8 return 1; 9 } 10 else 11 { 12 /* loop until all the integers are multiplied */ 13 for ( i = 1; i <= n; i++ ) 14 { 15 fac = fac * i; 16 } 17 18 return fac; 19 } 20 }