| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么用拉格朗日过不去?#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int dcmp(double s,double x)
{
double t,px=0.1;
t=x-s;
if(fabs(t)<px) return 1;
else return 0;
}
int main()
{
int q,S,C,i,j,k,x[120],h,coin,n,w,m,p;
double s,t,r;
while(scanf("%d",&p)==1)
{
for(q=1;q<=p;q++)
{
scanf("%d%d",&S,&C);
h=1;
scanf("%d",&x[1]);
for(i=2;i<=S;i++)
{
scanf("%d",&x[i]);
if(x[i]!=x[i-1]) h=0;
}
if(h==1)
{
for(i=S+1;i<C+S;i++) printf("%d ",x[1]);
printf("%d\n",x[1]);
}
else
{
for(n=1;n<S;n++)
{
coin=1;
for(j=n+2;j<=S;j++)
{
r=0;
for(k=1;k<=n+1;k++)
{
s=1.0;
for(m=1;m<=n+1;m++)
{
if(m!=k)
{
s*=(j-m);
t=(k-m);
s/=t;
}
}
s*=x[k];
r+=s;
}
w=dcmp(r,x[j]);
if(w==0) { coin=0;break; }
else coin=1;
}
if(coin==1) break;
}
}
for(i=S+1;i<=C+S&&h==0;i++)
{
r=0;
for(j=1;j<=n+1;j++)
{
s=1.0;
for(k=1;k<=n+1;k++)
{
if(k!=j)
{
t=(j-k);
s*=(i-k);
s/=t;
}
}
s*=x[j];
r+=s;
}
x[i]=(int)(r+0.2);
}
for(i=S+1;i<C+S&&h==0;i++) printf("%d ",x[i]);
if(h==0) printf("%d\n",x[i]);
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator