函数题:求阶乘之和(高效循环版)
请编写函数,用循环方法求阶乘之和。
$$SumFac(n) = 0! + 1! + 2! + 3 + \cdots + n!$$
#### 函数原型
c
double SumFac(int x);
说明:参数 x 为非负整数,函数值为 0 到 x 的阶乘之和。
要求:直接通过循环求得结果。
#### 裁判程序
c
#include <stdio.h>
double SumFac(int x);
int main()
{
int n;
scanf("%d", &n);
printf("%.10g\n", SumFac(n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
#### 输入样例1
in
4
#### 输出样例1
out
34
#### 输入样例2
in
70
#### 输出样例2
out
1.215221118e+100
答案:若无答案欢迎评论
在循环中设置两个变量,一个用于求积,一个用于求和,可使时间复杂度降至 $$O(n)$$。
$$SumFac(n) = 0! + 1! + 2! + 3 + \cdots + n!$$
#### 函数原型
c
double SumFac(int x);
说明:参数 x 为非负整数,函数值为 0 到 x 的阶乘之和。
要求:直接通过循环求得结果。
#### 裁判程序
c
#include <stdio.h>
double SumFac(int x);
int main()
{
int n;
scanf("%d", &n);
printf("%.10g\n", SumFac(n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
#### 输入样例1
in
4
#### 输出样例1
out
34
#### 输入样例2
in
70
#### 输出样例2
out
1.215221118e+100
答案:若无答案欢迎评论
在循环中设置两个变量,一个用于求积,一个用于求和,可使时间复杂度降至 $$O(n)$$。