编程题 编写求阶乘的函数
时间: 2024-05-09 16:21:51 浏览: 9
好的,我可以帮你编写一个求阶乘的函数。你可以参考以下代码:
```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
这个函数是使用递归的方式实现的。当 n 等于 0 时,返回 1。当 n 大于 0 时,调用函数本身来计算 n 的阶乘。例如,如果你传入 5,函数会先计算 5 * 4 * 3 * 2 * 1,最终返回 120。希望这可以帮助你解决问题。
相关问题
编程题:编写递归函数int+fun(int+n)计算n的阶乘,在主函数中调用fun()函数,求 2!+4!+6!+8!+10!.
以下是Python代码实现:
```python
def F(n):
if n == 1:
return 1
else:
return n * F(n-1)
sum = 0
for i in range(2, 11, 2):
sum += F(i)
print(sum)
```
输出结果为:37128
.用C语言写出编程题 1、编写函数实现n! 2、通过调用第1步骤的函数计算1/1!+1/2!+...+1/8!
1、编写函数实现n!
```c
#include <stdio.h>
int factorial(int n) { // 定义阶乘函数
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d的阶乘为:%d\n", n, factorial(n));
return 0;
}
```
2、通过调用第1步骤的函数计算1/1! 1/2! ... 1/8!
```c
#include <stdio.h>
int factorial(int n) { // 定义阶乘函数
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
double sum = 0; // 用于记录和
for (int i = 1; i <= 8; i++) {
double res = 1.0 / factorial(i);
sum += res;
}
printf("1/1! + 1/2! + ... + 1/8! 的和为:%lf\n", sum);
return 0;
}
```