有如下方程: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 = ?
若给出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 ", a1); 17 } 18 return 0; 19 }