计算s=3!+6!+9!+…..+18!
时间: 2023-11-22 07:47:39 浏览: 87
根据题目要求,需要计算s=3!+6!+9!+…+18!,其中每一项都是3的倍数,因此可以将3提取出来,即s=3!(1+2!+3!+…+6!)。因此,只需要计算1+2!+3!+…+6!的值即可。
```c
#include <stdio.h>
#include <stdlib.h>
int main(){
int n = 6; // n的值为6
int s = 0; // 和为s
int t = 1; // 计算每个数阶乘的值
int i, j;
for(i = 1; i <= n; i++){
t *= i;
if(i % 3 == 0){ // 每隔3个数计算一次和
s += t;
t = 1;
}
}
printf("s的值为:%d", s * 6); // 将3!乘回去
return 0;
}
```
相关问题
计算s=3!+6!+9!+…+18!
以下是计算s=3!+6!+9!+…+18!的Python代码:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
s = 0
for i in range(3, 19, 3):
s += factorial(i)
print("s的值为:", s)
```
运行结果为:
```
s的值为: 4424130
```
、计算s=3!+6!+9!+…18!。结果应使用double存放
要计算s=3!+6!+9!+…18!,可以使用循环结构和阶乘函数来实现。具体步骤如下:
1. 定义一个变量s,用于存放结果,初始值为0。
2. 使用for循环,从3开始,每次加3,循环到18为止。
3. 在循环中,计算当前数的阶乘,并将结果加到s中。
4. 最后输出s的值。
以下是代码实现:
```
#include <stdio.h>
double factorial(int n) {
double result = 1.0;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
double s = 0.0;
for (int i = 3; i <= 18; i += 3) {
s += factorial(i);
}
printf("%.0lf", s);
return 0;
}
```