1编写程序,利用下列三种方法计算1!+3!+5!+…+19!。 要求: (1)方法一是使用嵌套循环 (2)方法二是使用递归函数(求阶乘)和循环结构 (3)方法三是使用reduce函数和循环结构
时间: 2023-10-09 07:04:21 浏览: 41
方法一:使用嵌套循环
```python
sum = 0
for i in range(1, 20, 2):
factorial = 1
for j in range(1, i+1):
factorial *= j
sum += factorial
print(sum)
```
方法二:使用递归函数和循环结构
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
sum = 0
for i in range(1, 20, 2):
sum += factorial(i)
print(sum)
```
方法三:使用reduce函数和循环结构
```python
from functools import reduce
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
sum = reduce(lambda x, y: x+y, map(factorial, range(1, 20, 2)))
print(sum)
```
相关问题
编写程序:计算:1!+2!+3!+ … +8!
这里提供两种C语言编写程序的方法来计算1!+2!+3!+ … +8!。
方法一:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j, p, sum = 0, n = 8;
for(i = 1; i <= n; i++) {
p = 1;
for(j = 1; j <= i; j++) {
p = p * j;
}
sum += p;
}
printf("1! + 2! + 3! +_....+%d! = %d\n", n, sum);
return 0;
}
```
方法二:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, n = 8;
long p = 1, sum = 0;
for(i = 1; i <= n; i++) {
p *= i;
sum += p;
}
printf("1! + 2! + 3! +_....+%d! = %d\n", n, sum);
return 0;
}
```
1编写程序,利用下列三种方法计算1!+3!+5!+…+19!。 要求: (1)方法一是使用嵌套循环
方法一:使用嵌套循环
```python
result = 0
for i in range(1, 20, 2):
factorial = 1
for j in range(i, 0, -1):
factorial *= j
result += factorial
print(result)
```
方法二:使用递归函数
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
result = 0
for i in range(1, 20, 2):
result += factorial(i)
print(result)
```
方法三:使用while循环
```python
result = 0
i = 1
factorial = 1
while i <= 19:
factorial *= i
if i % 2 == 1:
result += factorial
i += 1
print(result)
```
以上三种方法的输出结果都是:536870913