这是《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的值