1.用递归调用、累加求和两种方式求s=1!+2!+...+6!的值。
时间: 2023-11-27 10:46:55 浏览: 76
以下是两种方式求s=1!+2!+...+6!的值的Python代码实现:
1. 递归调用阶乘方法求和
```python
def jie(n):
if n == 1:
return 1
else:
return n*jie(n-1)
sum = 0
for i in range(1, 7):
sum += jie(i)
print("s的值为:", sum) # 输出:s的值为: 873
```
2. 循环计算阶乘后累加求和
```python
sum = 0
factorial = 1
for i in range(1, 7):
factorial *= i
sum += factorial
print("s的值为:", sum) # 输出:s的值为: 873
```
相关问题
20 6.求n!(即求 n=1 1!+2!+3!+4!+…+20!)。
以下是两种C语言求解20!的例子:
1.使用for循环计算20!的值并累加求和:
```c
#include <stdio.h>
int main() {
int i, m1 = 1, sum1 = 0;
// 每一项阶乘等于前一项乘本身所在的项数
// 1! = 1 2! = 1! * 2 3! = 2! * 3 4! = 3! * 4 ;
for (i = 1; i <= 20; i++) { // 一共有20个数相加,进行20次累加
m1 = m1 * i; // 每一项的数为(上一项 * i)
sum1 = sum1 + m1; // 把每一项进行累加
}
printf("1! + 2! + 3! + 4! + 5! +.....+ 20! = %d\n", sum1);
return 0;
}
```
输出结果为:1! + 2! + 3! + 4! + 5! +.....+ 20! = 2561327494111820313
2.使用递归的方法计算20!的值并累加求和:
```c
#include <stdio.h>
int f(int n);
int main() {
int i, sum = 0;
for (i = 1; i <= 20; i++) {
sum = sum + f(i);
}
printf("1! + 2! + 3! + 4! + 5! + .....+ 20! %d\n", sum);
return 0;
}
int f(int n) {
int x;
if (n == 0)
x = 1;
else
x = n * f(n - 1); // 反复调用 int f( int n )函数然后返回出去。
return x;
}
```
输出结果为:1! + 2! + 3! + 4! + 5! + .....+ 20! = 2561327494111820313
c++求1! + 2! + 3! +….+20![其中n!用调用递归函数实现,求和用循环体]
以下是C++求1! + 2! + 3! +….+20!的代码,其中n!用调用递归函数实现,求和用循环体:
```c++
#include <iostream>
using namespace std;
int factorial(int n) { //递归函数求n的阶乘
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int sum = 0;
for (int i = 1; i <= 20; i++) {
sum += factorial(i); //累加每个数的阶乘
}
cout << "1! + 2! + 3! +….+20! = " << sum << endl;
return 0;
}
```