牛顿插值计算的c++代码

double newton(double *x, double *y, int n, double num, int cur, int pointNum, double answer)

{

//计算均差

for(int i = pointNum -1; i>cur; i--)

{

y[i] = ( y[i] - y[i-1] ) / ( x[i] - x[i-1] );

}

//已经计算完cur自加

cur++;

//temp进行临时计算

double temp = y[cur];

for(int i= 0; i<cur; i++)

{

temp *= ( num - x[i] );

}

//将临时计算的结果加到answer

answer += temp;

//如果得到想要的结果就返回答案 否则继续计算

if(cur==n)

return answer;

else

return newton(x,y,n,num,cur,pointNum,answer); /// 少了 return

}