猿问

C语言求e的x次幂,大家帮帮忙,谢谢。

问题描述:对于0<x<1,利用公式e^x=1+x+x^2/2!+....+x^i/i!+.....,求e^x的近似值,结果精确到10^-8(即n项和减去n-1项和小于10^-9)。其中e^x表示e的x次幂。 输入:输入数据有多组,第一个为测试级数,每组占一行,由一个实数组成。 输出:对于每组输入数据,输出一行。 输入样例:3 0.3 0.4 0.5 输出样例: 1.34985881 1.49182470 1.64872127
Chihiro咩咩
浏览 5234回答 1
1回答

Wendy_Jacky

#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)); }
随时随地看视频慕课网APP
我要回答