3T - A1 = ?

时间:2023-03-09 03:57:17
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.****.net/ysc504/article/details/8898721
 #include<stdio.h>
int main()
{
int n, i;
double a0, at, c[], a1;
while(~scanf("%d", &n))
{
scanf("%lf %lf", &a0, &at);
for(i=;i<n;i++)
scanf("%lf", &c[i]);
// 累加法 A1 = [nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)] / (n+1)
a1=n*a0+at;
for(i=;i<n;i++)
a1-=*(n-i)*c[i];
a1/=n+1.0;
printf("%.2f\n", a1);
}
return ;
}