UVA10014 - Simple calculations
公式:a1 = n * a0 / (n + 1) + an+1 / (n + 1) + ∑∑ci
题目:
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 }