测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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); }
上一题 下一题