There is a sequence of n + 2 elements a0, a1, . . . , an+1 (n ≤ 3000; −1000 ≤ ai ≤ 1000). It is known that
for each i = 1, 2, . . . , n. You are given a0, an+1, c1, . . . , cn. Write a program which calculates a1.
Input
The first line is the number of test cases, followed by a blank line.
For each test case, the first line of the input contains an integer n. The next two lines consist ofnumbers a0 and an+1 each having two digits after decimal point, and the next n lines contain numbersci (also with two digits after decimal point), one number per line.
Each test case will be separated by a single line.
Output
For each test case, the output should contain a1 in the same format as a0 and an+1.
Print a blank line between the outputs for two consecutive test cases.
Sample Input
1
1
50.50
25.50
10.15
Sample Output
27.85
问题链接:UVA10014 Simple calculations
问题简述:(略)
问题分析: 数列计算问题。
先进行数列通项公式的推导,然后再套公式计算,事情就简单了。
程序说明:(略)
题记:数学问题通常是先进行数学推导,再按照数学公式做计算。
参考链接:(略)
/* UVA10014 Simple calculations */
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--) {
int n;
double a, b, sum = 0;
scanf("%d", &n);
scanf("%lf%lf", &a, &b);
for(int i=0; i<n; i++) {
double x;
scanf("%lf", &x);
sum += (n - i) * x;
}
printf("%.2f\n", (n * a + b - 2 * sum) / (n + 1.0));
if(t)
putchar('\n');
}
return 0;
}