题目要求如下:
我根据公式写的算法是这样的:
#include <iostream>
#include <iomanip>
using namespace std;
double jiecheng(int k)
{
double s = 1;
for(int i = 1; i <= k; i++)
{
s *= i;
}
return s;
}
double fenmu(int k)
{
int s = 1;
for(int i = 1; k >= 0; k--, i += 2)
{
s *= i;
}
return s;
}
int main()
{
double temp1 = 1, temp2 = 1;
int k = 0;
double s = 0;
double u;
cin >> u;
while(temp1 / temp2 >= u)
{
s += temp1 / temp2;
k++;
temp1 = jiecheng(k);
temp2 = fenmu(k);
}
cout << setprecision(6) << 2.0 * s;
return 0;
}
得出的结果接近题目给出的输出要求,但是不一样,请问是我的算法不够准确吗