题目描述
有一个n+2个元素a[0], a[1], …, a[n+1] (n <= 3000, -1000 <= a[i] <=1000)构成的数列.
已知对i=1, 2, …, n有a[i] = (a[i-1] + a[i+1])/2 - c[i].
给定a0, a[n+1], c[1], … , c[n]. 写一个程序计算a[1].
输入
第一行是整数n. 接下来两行是a[0]和a[n+1], 其小数点后有两位数字. 其后的n行为ci, 每行一个数.
输出
输出为a[1], 格式与a[0], a[n+1]相同.
样例输入
1
50.50
25.50
10.15
样例输出
27.85
#include<stdio.h>
int main() {
int n, i, j, k;
float a[3] = {
'0'
};
float c[3003] = {
'0'
};
double value = 0.0;
scanf("%d", & n);
scanf("%f", & a[0]);
scanf("%f", & a[2]);
for (i = 1; i < n + 1; i++) {
scanf("%f", & c[i]);
}
for (j = n; j > 0; j--) {
for (k = 1; k <= j; k++) {
value = c[k] + value;
}
a[1] = (a[2] + n * a[0] - 2 * value) / (n + 1);
}
printf("%.2f", a[1]);
return 0;
}