题目链接:点击打开链接
对于一个含有 n+2n+2 个元素的数列,A_0, A_1, \cdots A_nA0,A1,⋯An,满足这样的递归公式
\displaystyle A_i = \frac{A_{i-1} + A_{i + 1}}{2} - C_i\ \ \ 1 \le i \le nAi=2Ai−1+Ai+1−Ci 1≤i≤n
现在我们知道 A_0, A_{n + 1}A0,An+1 和 C_1, C_2, \cdots C_nC1,C2,⋯Cn。
现在请你帮忙计算 A_1A1 的值。
输入格式
第一行输入一个整数 n(1 \le n \le 1000)n(1≤n≤1000)。
第二行输入两个数 A_0A0 和 A_{n+1}An+1,接着是 nn 个数据分别是 C_1,C_2, \cdots C_nC1,C2,⋯Cn。所有的数据均是两位小数的浮点数。
输出格式
输出 A_1A1 的值,结果保留两位小数。
样例输入1
1 50.50 25.50 10.15
样例输出1
27.85
样例输入2
2 -756.89 52.52 172.22 67.17
样例输出2
-761.49
假设a1为x,写出a2,a3,...an+1的表达式发现,an+1里面包含n+1个a1,若把a1当做0,则求出来的an+1与真正的an+1相差了n+1个a1,即可得出a1
#include<stdio.h> int main() { int n,i; double c[1010],a[1010],t; scanf("%d",&n); scanf("%lf%lf",&a[0],&t); for(i=1;i<=n;i++) scanf("%lf",&c[i]); a[1]=0; for(i=2;i<=n+1;i++) { a[i]=2*(a[i-1]+c[i-1])-a[i-2]; } printf("%.2lf\n",(t-a[n+1])/(n+1)); return 0; }