《实验报告01》增加02更新:
三行核心代码求自然对数底e的值
这篇博文是接着上篇博文延展更新,还没看上篇的读者可以点链接进行转跳:
没时间查看也可以直接参考下列代码(解释在下文):
#include <iostream>
using namespace std;
//求自然对数底e的方法
double algorithm()
{
double factorial = 1, e = 1, n = 1;
while (factorial > 0.0000001)
{
// 核心代码
factorial *= 1.0/n;
e += factorial;
n++;
// 核心代码
}
return e;
}
int main()
{
system("color F0");
cout<<"自然对数底e的值为:"<<algorithm()<<endl;
system("pause");
return 0;
}
解释
本次使用的三行核心代码如下:
factorial *= 1.0/n;
e += factorial;
n++;
1.我们都知道:e≈1+1+1/2!+1/3!+……+1/n!
2.让 e = 1 开始累加从1 到 1/n! 并输出 e 的值即可。
注:
factorial *= 1.0/n;
//该代码每次得出factorial的值 乘以 下一位数 y 的倒数即是y阶乘的倒数(1/y!) 。
故让 e = 1 开始累加每次factorial的值即为自然对数底e的值。
while 判断语句中(factorial > 0.0000001)
1.用来控制 求得自然对数底e的精度 以及while循环的停止
2.若需要更精确的数值,可将 判断语句中(factorial > 0.0000001)
改为 factorial > 0.0000000001 或 factorial 大于更小的值。