zrq495
www.zrq495.com

给出一个数列ci(1<=ci<=n),然后给出数列ai中的a0和a(n+1),并给出一个公式ai = ( a(i-1) + a(i+1) )  /  2 - ci。求a1。

 做了很长时间,也没弄对,最后看的别人的解题报告。。。。。

由给出公式得:2ai = a(i-1) + a(i+1) -2ci ,依次使i=1,2......n,写出n个式子,把它们相加,

得到:a1 + an = a0 + a - 2(c1 + …… + cn), 再使c的下标i=1......n,写出n个式子,把他们相加。

得到:(n + 1)a1 = na0 + an+1 - 2(nc1 + (n-1)c2 + (n-2)c3 + …… + cn)。

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int T, n, i;
 9     double a, b, c, sum;
10     cin >> T;
11     while(T--)
12     {
13         cin >> n >> a >> b;
14         sum=0;
15         for(i=0; i<n; i++)
16         {
17             cin >> c;
18             sum+=(n-i)*c;
19         }
20         printf("%0.2lf\n", (n*a+b-2*sum) / (n+1));
21         if(T)
22             printf("\n");
23     }
24     return 0;
25 }
posted on 2012-07-29 19:36  zrq495  阅读(373)  评论(0编辑  收藏  举报