1.用递归调用、累加求和两种方式求s=1!+2!+...+6!的值。
时间: 2023-11-27 08:46:55 浏览: 160
以下是两种方式求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语言写 求s=1!+2!+3!+....10!的值。
在C语言中,要计算从1!到10!的和,我们需要使用递归来计算阶乘,并遍历整个范围。以下是实现该功能的一个简单示例:
```c
#include <stdio.h>
// 阶乘函数
unsigned long long factorial(int num) {
if (num == 0 || num == 1) // 0! 和 1! 的特殊情况直接返回1
return 1;
else
return num * factorial(num - 1); // 递归调用
}
int main() {
unsigned long long sum = 0; // 初始化求和变量
for (int i = 1; i <= 10; i++) { // 遍历1到10
sum += factorial(i); // 累加阶乘结果
}
printf("1! + 2! + 3! + ... + 10! = %llu\n", sum); // 输出结果
return 0;
}
```
请注意,由于阶乘的增长非常快,对于较大的数,可能会超过`unsigned long long`类型的存储范围,导致溢出。如果需要处理更大的数值,可以考虑使用`long long`或者`__int128_t`。
阅读全文