问题描述 :
计算以下级数的和:
image.png
直到最后一项的绝对值小于10-6(该项不包括在结果中)。
输入说明 :
输入一个实数,代表x。
输出说明 :
输出结果,保留六位小数。整个输出无多余空格。
输入范例 :
2.5
输出范例:
1.917914
总结
1.我这里设置的变量比较多,注意保留X每次循环都要乘以x,都要判断绝对值,阶乘,思路清晰即可
2.加油!!!
#include<stdio.h>
#include<math.h>
double fact(int n);
int main(){
double sum,a,res,x,answer;
int i,s;
i=1;a=1.0;
sum=1.0;
s=1;
scanf("%lf",&x);
answer=x;
while(fabs(a)>=pow(10,-6)){
res=fact(i);
a=answer/res;
sum=sum+s*a;
s=-s;
i++;
answer=pow(x,i);
a=answer/fact(i);
}
printf("%.6f",sum);
return 0;
}
double fact(int n){
double fact=1.0,i;
for(i=1.0;i<=n;i++){
fact*=i;
}
return fact;
}