如何用C语言计算n的阶乘?_我们用_阶乘这个概念是由基斯顿・卡曼在1808年提出的
如何用C语言计算n的阶乘?
一、循环方法
计算n的阶乘,我们可以用循环来搞定,主要有两种循环方式:while循环和for循环。
1、while语句循环实现
首先,我们用while循环来计算阶乘。
代码 | 结果 |
---|---|
```c int factorial(int n) { int result = 1; while (n > 1) { result = n; n--; } return result; } ``` | 返回n的阶乘结果 |
2、for语句实现
当然,我们也可以用for循环来写这个计算过程。
代码 | 结果 |
---|---|
```c int factorial(int n) { int result = 1; for (int i = 2; i <= n; i++) { result = i; } return result; } ``` | 返回n的阶乘结果 |
二、递归方法
除了循环,我们还可以用递归来实现阶乘的计算。
1、写法一
这是递归方法的一种简单写法。
代码 | 结果 |
---|---|
```c int factorial(int n) { if (n == 0) { return 1; } else { return n factorial(n - 1); } } ``` | 返回n的阶乘结果 |
2、写法二
另一种递归写法,同样可以达到计算阶乘的目的。
代码 | 结果 |
---|---|
```c int factorial(int n) { return (n > 1) ? n factorial(n - 1) : 1; } ``` | 返回n的阶乘结果 |
延伸阅读
什么是阶乘?
阶乘这个概念是由基斯顿・卡曼在1808年提出的。简单来说,就是一个正整数的阶乘是所有小于等于这个数的正整数的乘积。用数学符号表示,就是n的阶乘写作n!。比如,5的阶乘就是1×2×3×4×5,也就是120。0的阶乘被定义为1。阶乘的递归定义是:0!=1,n!=(n-1)!×n。