PKU-2601-Simple calculations
Description
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.
You are given a0, an+1, c1, ... , cn. Write a program which calculates a1.
Input
The first line of an input 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.
Output
The output file should contain a1 in the same format as a0 and an+1.
Sample Input
1 50.50 25.50 10.15
Sample Output
27.85
推公式呀推公式~~~
a[1] + c[1] = 1/2 (a[0] + a[2])
a[2] + c[2] = 1/2 (a[1] + a[3])
...
a[n] + c[n] = 1/2 (a[n-1] + a[n+1])
then..
a[1..n] + c[1..n] = 1/2 (a[0..n-1] + a[2..n+1])
a[1] + a[n] = a[0] + a[n+1] -2c[1..n]
a[1] + a[n-1]= a[0] + a[n] -2c[1...n-1]
...
a[1] + a[1] = a[0] + a[2] -2c[1..1]
then..
na[1]+a[1..n]=na[0]+a[2..n+1]-2c[....] c[....]={nc[1]+(n-1)c[2]+...+c[n]}finally..
(n+1)a[1]=na[0]+a[n+1]-2c[...]
#include <stdio.h>
int main()
{
int n,i;
double a,b,temp;
double sum=0.0;
// freopen("d:\\input.txt","r",stdin);
scanf("%d",&n);
scanf("%lf%lf",&a,&b);
for (i=0;i<n;i++)
{
scanf("%lf",&temp);
sum+=(n-i)*temp;
}
sum=-sum*2;
sum+=n*a+b;
sum/=n+1;
printf("%.2lf\n",sum);
return 0;
}






}
}
浙公网安备 33010602011771号