)
如题,
#include <iostream>
#include <cmath>
using namespace std;
double f(double x)
{
if (x == 0)
return log(6.0/5);
else return 1/x - 5*f(x-1);
}
int main ()
{
for (int i = 0; i <= 30; ++i)
cout << f(i) << endl;
return 0;
}
采用这种方法算出来-36668.8
答案给的是0.0054046330
使用py反过来推
import math
a=0.0054046330
n=30
for i in range(1,31):
a=(-a+1/n)/5
n-=1
print(a)
print(math.log(6/5))
能得到正确答案(事实上,代上面的递归答案也可以得到ln的值
感觉浮点数精度问题好复杂
求大佬解答其中疑惑