泰勒公式求e值——c语言算法实现

浏览:
字体:
发布时间:2013-12-09 23:23:37
来源:
题目:
 
 
 
通过泰勒公式的变形:e = 1 + (1/1!) + (1/2!) + (1/3!) + … + (1/n!)   (1/n! >= 10^-7)来求e的值
 
 
解析:
 
 
 
我们在看到由1到n的阶乘的时候第一反应肯定是用循环,而n!似乎有点碍事,我刚开始做的时候为了避开这个麻烦就构造了一个函数专门来求n!
 
 
 
这样看似简单,实际反而却麻烦,下面分别贴上两种方法:
 
 
 
构造函数法:
 
 
 
#include "stdio.h"    void main()    {      double e = 1.0;      int n = 1;      for (;(1.0/(double)jc(n)) >= (1e-7);n++)      {          e += 1.0/(double)jc(n);      }      printf("%lf/n",e);  }  int jc(int a)  {      int re = 1.0;      for (;a > 0;a--)      {          re *= a;      }      return re;  }  

 

 
 
直接法:
 
 
#include "stdio.h"    void main()    {      double e = 1.0;             //定义e的初始值      double jc = 1.0;            //阶乘      int n = 1;        for (;1/jc >= 1e-7;n++)      {          jc *= n;            //求n的阶乘          e += 1/jc;      }      printf("e的值为:%lf/n",e);  }  

 

 
运行结果:
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();