70,023
社区成员




#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,i;int b,j;
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&b);
double a[b+1];
for(i=0;i<b+1;i++)
{
scanf("%lf",&a[i]);
}
int i,n;double fx=0;double x=0.08;//赋初值给x
double fx1=0;
for(n=0;n<2;n++)//运算两次x
{
for(i=1;i<b+1;i++)//计算函数值
{
fx=fx+a[i]*pow(1.0+x,b-i);
}
fx=fx-a[0]*pow(1.0+x,b);
for(i=1;i<b;i++)//计算函数的导数值
{
fx1=fx1+a[i]*(b-i)*pow(1.0+x,b-i-1);
}
fx1=fx1-a[0]*pow(1+x,b-1)*b;
x=x-(fx/fx1);
}
printf("%lf\n",x);
}
return 0;
}