【代码】:
#include <stdio.h>
int main()
{
double term,sum=1;
long n = 1, count = 0,num;
int i,j;
do {
for (i = 1,num=1; i <= n; i++)
{
num *= i;
}
n++;
term = 1.0 / num;
sum += term;
count++;
} while (term >= 1e-5);
printf("总共累加了%d项\n", count);
printf("e=%lf", sum);
return 0;
}
【说明】:因为精度要求是最后一项的绝对值小于10^-5,所以想到要有条件判断,用for循环和do while循环都可以,这里用第二种。
首先定义一些变量,num用来求阶层,term用来求当前项的1除阶层,sum用来求和,count用来计数,n是求阶层的循环次数。
n我们是不知道的,但是可以通过条件,让n从1累加到我们想要的值。这个条件就是term要小于等于10的负五次方。超出这个条件,直接输出sum和count,而无须细究n到底是多少。
程序的结构显然明了,外面一层循环用来条件判断,里面一层循环用来求阶层。
【最后输出】:
总共累加了9项
e=2.718282