The Problem
There is a sequence of n+2 elements a0, a1,…, an+1 (n <= 3000; -1000 <= ai 1000). It is known that ai = (ai–1 + ai+1)/2 – ci for each i=1, 2, ...,
n. You are given a0, an+1, c1, ... , cn. Write a program which calculates a1.
The Input
The first line is the number of test cases, followed by a blank line.
For each test case, the first line of an input file contains an integer n. The next two lines consist of numbers a0 and an+1 each having two digits after decimal point, and the next n lines contain
numbers ci (also with two digits after decimal point), one number per line.
Each test case will be separated by a single line.
The Output
For each test case, the output file 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
解题报告
拿笔模拟下就出来了。。。
2a2=a1+a3+2c2;
2a3=a2+a4+2c3;2a4=a3+a5+2c4;2a5=a4+a6+2c5;累加就出来了。。。#include<stdio.h> int main() { int i,n,t,j; double a0,a1,at,c[5000],ct; scanf("%d",&t); while(t--) { scanf("%d",&n); scanf("%lf%lf",&a0,&at); for(i=1;i<=n;i++) scanf("%lf",&c[i]); ct=0; for(i=1,j=n;i<=n;i++,j--) ct+=j*c[i]; a1=(at+n*a0-2*ct)/(n+1); printf("%.2lf\n",a1); if(t) printf("\n"); } return 0; }