問題描述:對于0<x<1,利用公式e^x=1+x+x^2/2!+....+x^i/i!+.....,求e^x的近似值,結(jié)果精確到10^-8(即n項和減去n-1項和小于10^-9)。其中e^x表示e的x次冪。
輸入:輸入數(shù)據(jù)有多組,第一個為測試級數(shù),每組占一行,由一個實(shí)數(shù)組成。
輸出:對于每組輸入數(shù)據(jù),輸出一行。
輸入樣例:3
0.3
0.4
0.5
輸出樣例:
1.34985881
1.49182470
1.64872127
1 回答

Wendy_Jacky
TA貢獻(xiàn)10條經(jīng)驗(yàn) 獲得超2個贊
#include?<stdio.h> #include?<math.h> #define?e?2.718281828459 long?factorial(int?n); double?pow1(double?x); int?main() { ????int?n; ????scanf("%d",?&n); ????for?(int?i?=?0;?i?<?n;?++i) ????{ ????????double?d; ????????scanf("%lf",?&d); ????????printf("%.8f?",?pow1(d)); ????} ????return?0; } /** ?*?計算e^x ?*?e^x=?1?+?x?+?x^2/2!?+?...?+?x^i/i!?+?... ?*?@param??x?[description] ?*?@return???[description] ?*/ double?pow1(double?x) { ????int?i?=?2; ????double?temp; ????double?d1?=?1.0; ????double?d2?=?x; ????double?sum?=?d1?+?d2; ????while?(d1?-?d2?-?0.000000001?>=?0) ????{ ????????d1?=?d2; ????????d2?=?pow(x,?i)?/?factorial(i); ????????sum?+=?d2; ????????i++; ????} ????return?sum; } /** ?*?求階乘 ?*?@param??n?[description] ?*?@return???[description] ?*/ long?factorial(int?n) { ????if?(n?==?0?||?n?==?1)return?1; ????else?return?(n?*?factorial(n?-?1)); }
- 1 回答
- 0 關(guān)注
- 5458 瀏覽
添加回答
舉報
0/150
提交
取消