首页 > 代码库 > uva 10014 Simple calculations

uva 10014 Simple calculations

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=955

根据递推公式推倒出a1的公式。

a1=(n*a0+an+1-2*(n*c1+(n-1)*c2+...+cn))/(n+1);

 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 50000 5 using namespace std; 6  7 double a1,a2; 8 double c[maxn]; 9 int t;10 int n;11 12 int main()13 {14     scanf("%d",&t);15     while(t--)16     {17         scanf("%d",&n);18         scanf("%lf%lf",&a1,&a2);19         double sum=n*a1+a2;20         for(int i=1; i<=n; i++)21         {22             scanf("%lf",&c[i]);23             sum-=2.0*(n+1-i)*c[i];24         }25         printf("%.2lf\n",sum/(n+1));26         if(t!=0) printf("\n");27     }28     return 0;29 }
View Code

 

uva 10014 Simple calculations