用double计算s=3!+6!+9!+…+18!
时间: 2023-10-24 10:22:59 浏览: 74
可以使用循环和累乘的方法计算s,具体代码如下:
```
double s = 1.0;
for (int i = 3; i <= 18; i += 3) {
double fac = 1.0;
for (int j = 1; j <= i; j++) {
fac *= j;
}
s *= fac;
}
```
首先,定义变量s并初始化为1.0。然后,使用循环从3开始到18,每次加3,表示计算3!、6!、9!、12!、15!和18!。在每个循环中,再使用一个内层循环计算当前项的阶乘fac。内层循环从1开始到当前项的值,每次乘以j,累乘得到fac。最后,将计算得到的fac乘到s上,更新s的值。循环结束后,s即为所求的结果。
相关问题
C++语言编程计算s=1! +2! +3! +……n! n是正整数
以下是计算s的C语言代码:
```c
#include <stdio.h>
int main() {
int n, i, j, factorial = 1;
double s = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial *= i;
s += factorial;
}
printf("s = %.0f\n", s);
return 0;
}
```
这个程序会让用户输入一个正整数n,然后计算出s的值,并输出结果。
c++编写函数fun,函数首部为double fun(int n),其功能是计算S=1!+2!+3!+......+n!。
在C++中,你可以编写一个名为`fun`的函数来计算从1到n的所有阶乘之和。阶乘是一个正整数n的阶乘表示所有小于及等于n的正整数的积,记作n!。以下是该函数的实现:
```cpp
#include <iostream>
// 函数模板用于计算任意大小的阶乘
template <typename T>
T factorial(T n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 主函数 double fun(int n)
double fun(int n) {
// 使用模板函数计算阶乘并累加
double sum = 0.0;
for (int i = 1; i <= n; ++i) {
sum += static_cast<double>(factorial(i));
}
return sum;
}
int main() {
int num;
std::cout << "Enter a non-negative integer: ";
std::cin >> num;
double result = fun(num);
std::cout << "The sum of factorials from 1 to " << num << " is: " << result << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了一个通用的`factorial`模板函数来计算阶乘,然后在`fun`函数里调用这个模板,将每个整数的阶乘累加起来。
阅读全文