问题:利用泰勒级数e=1+1/1!+1/21+1/3!+...+1/n!,计算e的近似值。当最后一项的绝对值小于10负5次方时认为达到了精度要求,要求统计总共累加了多少项。
解题思路:采用累加和算法 e = e + term。如下寻找累加项的构成规律:利用前项计算后项比寻找统一的累加项表示形式要简单一些,由1/2!=1/1!除以2,1/3!=1/2!除以3,...,,可以发现前后项之间的关系是term(n)= term(n-1)除以n写成C语句是“term = term / n;",term的初值为1.0.,n的初值也为1,n按n=n+l变化,统计累加项数只要设置一个计数器变量即可,这里,计数器变量取名为count,初值为0,在循环体中每累加一项就加1一次。
代码实现(C语言)
代码源码:(文本)
#define _CRT_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main(void)
{
double term = 1.0, e = 1.0;
int n = 1, count = 1;
while (fabs(term) >= 1e-5)
{
term = term / n;
e = term + e;
n++;
count++;
}
printf("count=%d,e=%f\n", count, e);
return 0;
}
运行结果: