这是《C语言入门实战》系列的第12篇。
上一篇:C语言入门实战(11):输入一组正整数,求逆序数的和
文章目录
- 题目
- 要求
- 参考代码
- 代码复盘
题目
利用算式:
e = 1 0 ! + 1 1 ! + 1 2 ! + . . . + 1 n ! + . . . e=\frac{1}{0!}+\frac{1}{1!}+\frac{1}{2!}+...+\frac{1}{n!}+... e=0!1+1!1+2!1+...+n!1+...
求自然常数e,要求控制精度在0.000001,请编程解决该问题。
要求
本程序无需输入,结果只输出e的值即可。
参考代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
float e = 1;//第1项,1/0!
float d = 1;
int i;
int pro = 1;//分母
for(i=1;d>=1e-6;i++) {
pro *= i;
d = (float)1/pro;
e += d;
}
printf("%f", e);//2.718282
return 0;
}
代码复盘
刚开始,e初始化为第一项的值,然后利用n! = n * (n-1)!
的性质,for循环中依次计算从第二项开始各项的分母。
更多推荐
C语言入门实战(12):求自然常数e的值
发布评论