一开始把问题想复杂了,构造了一个函数用来求关系式中的每一项,但是仔细考虑之后发现没有那么的麻烦。有一个规律,只需要将最后一项乘上(i)/(2*i + 1)后就可以成为新的last。
#include <stdio.h>
int main()
{
double thred;
double sum=0;
double last=1.0;
int i=0;
scanf("%lf",&thred);
while(last > thred)
{
sum += 2*last;
i++;
last = last*i/(2*i+1);
}
sum += 2*last;
printf("%.6lf\n",sum);
return 0;
}