A41032. 简单计算
填空题
较易
知识点
题目描述
简单计算
题目描述
有一个n+2个元素a[0], a[1], ..., a[n+1] (n <= 3000, -1000 <= a[i] <=1000)构成的数列.
已知对i=1, 2, ..., n有a[i] = (a[i-1] + a[i+1])/2 - c[i].
给定a0, a[n+1], c[1], ... , c[n]. 写一个程序计算a[1].
输入格式
第一行是整数n. 接下来两行是a[0]和a[n+1], 其小数点后有两位数字. 其后的n行为c[i](同样是两位小数), 每行一个数.
输出格式
输出为a[1], 格式与a[0], a[n+1]相同.
样例输入
1
50.50
25.50
10.15
样例输出
27.85
参考答案
#include <stdio.h>
#include <malloc.h>
int main()
{
double *pc;
int n,i,j;
double a0,an1,a1,sum; //a0代表a[0],an1代表a[n+1],a1代表a[1]
while(scanf("%d",&n)!=EOF )
{
pc=(double *) malloc((n+1) * sizeof(double) ); //定义数组c(动态空间)
scanf("%lf%lf", &a0,&an1); //输入a[0], a[n+1]
for (i=1;i<=n;i++) //输入c[1]到c[n]
scanf( "%lf", &pc[i] );
sum=0;
for(i=1;i<=n;i++) //求推导公式中的sum
{
for(j=1;j<=i;j++)
sum=sum+pc[j];
}
a1 = (n * a0 + an1 - 2 * sum ) / (n + 1); //求a1
printf( "%.2lf\n", a1 );
}
return(0);
}
上一题
下一题