栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++:利用泰勒公式求e的x次方近似值

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++:利用泰勒公式求e的x次方近似值

【问题描述】

已知的近似值可由下面公式计算得出:

=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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号