用函数求1!+3!+5!+n!
时间: 2023-09-03 09:08:12 浏览: 29
可以使用循环和递归两种方法来实现。
循环方法:
```python
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
def sum_factorials(n):
result = 0
for i in range(1, n+1, 2):
result += factorial(i)
return result
n = int(input("请输入n的值:"))
print(sum_factorials(n))
```
递归方法:
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
def sum_factorials(n):
if n == 1:
return 1
else:
return factorial(n) + sum_factorials(n-2)
n = int(input("请输入n的值:"))
print(sum_factorials(n))
```
两种方法都可以得到正确的结果,选择哪种方式可以根据实际情况来决定。
相关问题
用函数求1!+3!+5!+n!。
以下是使用函数求1!+3!+5!+n!的方法:
```python
# 定义一个函数,用于计算阶乘
def jie(n):
if n == 1:
return 1
else:
return n*jie(n-1)
# 从键盘输入n的值
n = int(input())
# 初始化sum为0
sum = 0
# 循环计算1!+3!+5!+n!
for i in range(1, n+1, 2):
sum += jie(i)
# 输出结果
print(sum)
```
用函数求1!++3!+5!+……++n!
以下是用函数求1!+3!+5!+……+n!的C语言代码:
```c
#include <stdio.h>
int factorial(int n) { // 定义递归函数计算阶乘
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1); }
}
int sum(int n) { // 定义递归函数计算1!+3!+5!+……+n!
if (n == 1) {
return 1;
} else if (n % 2 == 0) {
return sum(n - 1);
} else {
return factorial(n) + sum(n - 2);
}
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("1!+3!+5!+……+n!的和为:%d\n", sum(n));
return 0;
}
```