程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 泰勒公式求e值——c語言算法實現

泰勒公式求e值——c語言算法實現

編輯:關於C
題目:       通過泰勒公式的變形: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);  
}  

 

  運行結果:
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved