计算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;
}