【问题描述】
已知的近似值可由下面公式计算得出:
=1 + x/1! + /2! + /3! + ...... +/n!
给定x和n,利用上述公式求得的近似值。
【输入形式】
从控制台输入小数x,和整数n(n>=1),用空格隔开。
【输出形式】
向控制台输出求得的 的近似值(小数点后保留6位有效数据)。
【样例输入】
7 27
【样例输出】
1096.633156
【样例说明】
输入的x为7,n的值为27,即:求e7的近似值,利用上述公式求得的近似值为:1096.633156。
【源代码】
#include#include #include using namespace std; double factorial(int n)//定义一个求阶乘的函数 { double fac = 1;//此处用double不用int,int容量过小 for (int i = 1; i <= n; i++) { fac = fac * i; } return fac; } int main() { double x, e = 1; int n;//n需为整型变量,否则后面会计算误差 cin >> x >> n; for (int i = 1; i <= n; i++) { e = e + pow(x, i) / factorial(i);//使用乘方pow函数,须包含头文件cmath } cout << fixed << setprecision(6) << e << endl;//setprecision保留小数,须头文件iomanip return 0; }
其中使用了自己定义的求阶乘的函数factorial
double factorial(int n) { double fac = 1; for (int i = 1; i <= n; i++) { fac = fac * i; } return fac; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)