//求插商doublegetCS(int n,double Xs[],double Ys[]){double cs;
cs =0;double l =1;for(int k =0; k <n; k++){for(int j=0;j<n;j++){if(k==j){continue;}
l = l*(Xs[k]- Xs[j]);}
cs = cs + Ys[k]/ l;
l =1;}return cs;}//求连乘doublegetvalue(int n,double x,double Xs[]){double l =1.0;for(int i =0;i<n-1;i++){
l = l*(x-Xs[i]);}return l;}//求牛顿插值结果voidnewton(){double x,y;double cs;//差商
cs =0;
y =0;double l =1.0;int n;
cout<<"请输入你要计算的x"<<endl;
cin>>x;
cout<<"请输入有多少个已知点"<<endl;
cin>>n;double Xs[n];double Ys[n];
cout<<"请输入用还插值的点,xy用空格分开,不需要加括号"<<endl;for(int i =0;i<n;i++){
cin>>Xs[i];
cin>>Ys[i];}for(int i =0; i<n;i++){
y = y +getCS(i+1,Xs,Ys)*getvalue(i+1,x,Xs);}
cout<<"结果是"<<y<<endl;}