UVA10014 - Simple calculations

公式:a1 = n * a0 / (n + 1) + an+1 / (n + 1) + ci

题目:

Simple calculations


 Simple calculations 

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

解答:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int t;
 5     double a0,an1,c;
 6     scanf("%d",&t);
 7     while(t--)
 8     {
 9         int i,j;
10         double n,c,s=0;
11         scanf("%lf%lf%lf",&n,&a0,&an1);
12         for(i=0;i<n;i++)
13         {
14             scanf("%lf",&c);
15             s+=(n-i)*c;
16         }
17         s*=2;
18         printf("%.2lf\n",n*a0/(n+1)+an1/(n+1)-s/(n+1));
19         if(t)
20             printf("\n");
21     }
22     return 0;
23 }

 

posted @ 2013-03-04 11:24  上白泽慧音  阅读(217)  评论(0编辑  收藏  举报