#include<stdio.h>
int fact(int x);
int main()
{
int n;
scanf("%d", &n);
if (n > 15) { //当n大于15后,sum的值是一样的
n = 15;
}
double sum = 1.0;
for (int i = 1; i <= n; i++) {
sum = sum + 1.0 / fact(i);
}
printf("%.8lf", sum);
}
int fact(int x) {
int a = 1;
for (int i = 1; i <= x; i++) {
a = a * i;
}
return a;
}
&&
#include<stdio.h>
#include<math.h>
int main()
{
double x;
scanf("%lf", &x);
double sum = 1.0;
double b = 1;
for (int i = 1;; i++) {
b = i * b;
double a= pow(x, i) / b * 1.0;
sum = sum + a;
if (a < 1e-5) {
break;
}
}
printf("%.4lf", sum);
}
这两段代码分别展示了使用阶乘和指数幂进行数学序列求和的过程。第一段代码限制了输入值n的最大值为15,避免了阶乘溢出,并通过循环计算序列和。第二段代码利用指数幂和阶乘计算泰勒级数,通过设定误差阈值来终止循环,提高计算效率。

被折叠的 条评论
为什么被折叠?



