设为首页 加入收藏

TOP

泰勒公式求e值――c语言算法实现
2014-11-23 21:37:59 来源: 作者: 【 】 浏览:7
Tags:泰勒 公式 语言 算法 实现
题目:
通过泰勒公式的变形: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);  
}  

运行结果:
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言基础必备 指针数组 and 数组.. 下一篇 acm 1012

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: