Uva 2034

时间:2023-03-09 19:47:58
Uva   2034

Uva   2034

求定积分

(结果当时我没看到平均值)

//正常多项式求

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double xishu[105];
int main()
{
int n;
while (cin>>n)
{
if(n==0) continue;
double ans1=0,ans2=0;
double sta,end;
for(int i=n;i>=0;i--)
cin>>xishu[i]; cin>>sta>>end;
for(int i=n;i>=0;i--)
xishu[i]/=(i+1);
for(int i=n;i>=0;i--)
{
ans1+=xishu[i]*pow(sta,i+1);
ans2+=xishu[i]*pow(end,i+1);
}
double ans=(ans2-ans1)/(end-sta);
printf("%.3lf\n",ans); }
return 0;
}

  Uva   2034

#include<cstdio>
#include <cmath>
#include<iostream>
using namespace std;
double xx[100];
int n;
double fun(double x)
{
double ff=0;
for(int i=0; i<=n; i++)
{ ff+=xx[i]*pow(x,i);
}
return ff;
} int main()
{
while(cin>>n)
{
if(n==0)
continue;
double sta,end;
for(int i=n; i>=0; i--)
{
cin>>xx[i];
}
cin>>sta>>end; double ans=(fun(sta)+fun(end))/2.0;
double h=(end-sta)/1000;
for(int i=1; i<1000; i++)
{
ans+=(fun(sta+h*i));
} ans=(h*ans/(end-sta));
printf("%.3lf\n",ans);
}
}

  Uva   2034

#include<cstdio>
#include<iostream>
#include<cmath>
const int N=1000;
using namespace std;
double xx[100];
int n;
double fun(double x)
{
double ff=0;
for(int i=0; i<=n; i++)
{ ff+=xx[i]*pow(x,i);
}
return ff;
}
double T(double a,double b,double n)
{
double h=(b-a)/N;
double tt=(fun(a)+fun(b))/2.0;
for(int i=1;i<N;i++)
{ tt+=fun(a+i*h);
}
return tt*h;
}
int main()
{ while(cin>>n)
{
if(n==0)
continue;
double sta,end;
for(int i=n; i>=0; i--)
{
cin>>xx[i];
}
cin>>sta>>end;
double ans=(4*T(sta,end,2*N)-T(sta,end,N))/3.0;
ans=ans/(end-sta); printf("%.3lf\n",ans);
}
return 0;
}