求幂级数展开的部分和

已知函数e^x
​​可以展开为幂级数1 + x + x ^ 2 / 2 ! + x ^ 3 ​​ / 3 ! +⋯ + x ^ ​k​​ / k ! + ⋯ 。现给定一个实数x,要求利用此幂级数部分和求e ^ ​x​​ 的近似值,求和一直继续到最后一项的绝对值小于0.00001。

输入格式:

输入在一行中给出一个实数x∈[0,5]。

输出格式:

在一行中输出满足条件的幂级数部分和,保留小数点后四位。

输入样例:

1.2

输出样例:

3.3201

思路:

从题目所给的公式中发现每次的变值有着一定规律
x / 1
x * x / 1 / 2
x * x * x / 1 / 2 / 3
所以可以用for循环解决然后只要有一次所得值小于0.00001就跳出循环。

AC代码:

#include<stdio.h>
#include<math.h>
double x,sum,a;
int main(){
	while(scanf("%lf",&x)!=EOF){
		sum=1;
		a=1;
		for(double i=1;i<999;i++){
			a=a*x/i;    // x/1!  x*x/1/2   x*x*x/1/2/3
			sum+=a;
			if(a<0.00001){
				break;
			}
		}
		printf("%.4lf\n",sum);
		
	}
	return 0;
} 
发布了34 篇原创文章 · 获赞 6 · 访问量 1358

猜你喜欢

转载自blog.csdn.net/qq_44669377/article/details/104555481