3T - A1 = ?

有如下方程:A i = (A i-1 + A i+1)/2 - C i (i = 1, 2, 3, .... n). 
若给出A 0, A n+1, 和 C 1, C 2, .....C n
请编程计算A 1 = ?

Input

输入包括多个测试实例。 
对于每个实例,首先是一个正整数n,(n <= 3000); 然后是2个数a 0, a n+1.接下来的n行每行有一个数c i(i = 1, ....n);输入以文件结束符结束。 

Output

对于每个测试实例,用一行输出所求得的a1(保留2位小数).

Sample Input

1
50.00
25.00
10.00
2
50.00
25.00
10.00
20.00

Sample Output

27.50
15.00

// 传送门:https://blog.csdn.net/ysc504/article/details/8898721
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n, i;
 5     double a0, at, c[3000], a1;
 6     while(~scanf("%d", &n))
 7     {
 8         scanf("%lf %lf", &a0, &at);
 9         for(i=0;i<n;i++)
10             scanf("%lf", &c[i]);
11         // 累加法    A1 = [nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)] / (n+1)
12         a1=n*a0+at;
13         for(i=0;i<n;i++)
14             a1-=2*(n-i)*c[i];
15         a1/=n+1.0;
16         printf("%.2f\n", a1);
17     }
18     return 0;
19 }
View Code

 

posted @ 2019-02-09 02:00  Blind  阅读(98)  评论(0编辑  收藏  举报