编写程序,定义一个求阶乘的函数fac(n),并编写测试代码,阶乘结果用变量fac_s,循环变量i,非递归方式Python
时间: 2024-02-27 08:54:54 浏览: 24
好的,以下是代码实现:
```python
def fac(n):
fac_s = 1
for i in range(1, n+1):
fac_s *= i
return fac_s
# 测试代码
print(fac(5)) # 输出120
print(fac(0)) # 输出1
print(fac(10)) # 输出3628800
```
函数`fac(n)`使用了一个循环来计算`n`的阶乘,变量`fac_s`初始化为1,循环从1遍历到`n`,每次将`i`乘到`fac_s`上,最后返回`fac_s`作为阶乘结果。测试代码中,我们分别测试了`n=5`、`n=0`和`n=10`的阶乘结果,验证了函数的正确性。
相关问题
【问题描述】使用递归编写一个函数fac实现求n的阶乘,并编写主函数调用fac函数,验证函数的正确性。
好的,下面就是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int fac(int n) {
if (n == 0) {
return 1; // 0 的阶乘为 1
} else {
return n * fac(n - 1); // 递归调用求解 n-1 的阶乘
}
}
int main() {
int n = 5;
cout << n << " 的阶乘为:" << fac(n) << endl; // 输出 5 的阶乘
return 0;
}
```
这个函数使用了递归的思想,当 `n` 为 0 时,直接返回 1,否则递归调用 `fac(n - 1)` 并将结果乘以 `n`,得到 `n` 的阶乘。在主函数中,我们定义了一个整型变量 `n`,并输出它的阶乘,验证了 `fac` 函数的正确性。
用c语言【问题描述】使用递归编写一个函数fac实现求n的阶乘,并编写主函数调用fac函数,验证函数的正确性。
好的,下面就是 C 语言的代码实现:
```c
#include <stdio.h>
int fac(int n) {
if (n == 0) {
return 1; // 0 的阶乘为 1
} else {
return n * fac(n - 1); // 递归调用求解 n-1 的阶乘
}
}
int main() {
int n = 5;
printf("%d 的阶乘为:%d\n", n, fac(n)); // 输出 5 的阶乘
return 0;
}
```
这个函数使用了递归的思想,当 `n` 为 0 时,直接返回 1,否则递归调用 `fac(n - 1)` 并将结果乘以 `n`,得到 `n` 的阶乘。在主函数中,我们定义了一个整型变量 `n`,并输出它的阶乘,验证了 `fac` 函数的正确性。