用c语言或者c++编程

计算s= 1!+2!+3!+4!+…+20!

运行结果示例:
1!+2!+3!+4!+...+20! = 2.561327494111820e+018

说明:
(1)为了提高计算精度,将累计和定义为double变量。
(2)输出格式为: printf("1!+2!+...+20!=%22.15e\n",s);


#include <stdio.h>
#include <math.h>
int main()
{
    int i;
    double temp = 1,s = 0;
    for(i = 1;i <= 20;i++){
        temp *= i;
        s += temp;
    }
    printf("1!+2!+...+20!=%22.15e\n",s);
    return 0;
}

double fact(double n) {
    double res=1.0;
    for (int i = 2; i < n+1; i++) {
        res = res * i;
    }
    return res;
}
int main() {
    double sum = 0.0;
    for (int i = 1; i <= 20; i++) {
        sum += fact(i);
    }
    cout << sum << endl;
}