当前位置:首页 > 数学 > 2018 蓝桥杯省赛 B 组模拟赛(一) 数列求值-计蒜客

2018 蓝桥杯省赛 B 组模拟赛(一) 数列求值-计蒜客

https://nanti.jisuanke.com/t/20688

对于一个含有 n+2 个元素的数列,A_0, A_1, \cdots A_n,满足这样的递归公式


\displaystyle A_i = \frac{A_{i-1} + A_{i + 1}}{2} - C_i\ \ \ 1 \le i \le n


现在我们知道 A_0, A_{n + 1} 和 C_1, C_2, \cdots C_n

现在请你帮忙计算 A_1 的值。

输入格式

第一行输入一个整数 n(1 \le n \le 1000)

第二行输入两个数 A_0 和 A_{n+1},接着是 n 个数据分别是 C_1,C_2, \cdots C_n。所有的数据均是两位小数的浮点数。

输出格式

输出 A_1 的值,结果保留两位小数。

样例输入1

1
50.50 25.50
10.15

样例输出1

27.85

样例输入2

2
-756.89 52.52
172.22 67.17

样例输出2

-761.49


递推公式 A(i+1)=2*Ai-A(i-1)+2*Ci

假设i=2和3 分别代入上式 一直化简   可以得到公式

An=n*A1-(n-1)*A0+ 【求和( 2*(n-i)*Ci )】 ( i从1到n-1 )


题目给出An+1与A0 因此得解

#include <stdio.h>

int main(){
    int n;
    double c,a0,an1;
    scanf("%d",&n);
    scanf("%lf %lf",&a0,&an1);
    double ans=0;

    ans=an1+n*a0;
    for(int i=1;i<=n;i++){
        scanf("%lf",&c);
        ans-=c*(n-i+1)*2;
    }
    ans/=(n+1);
    printf("%.2lf\n",ans);
    return 0;
}


除特别注明外,本站所有文章均为whppmy原创,转载请注明出处来自http://www.dengwenhuo.cn/?id=462

发表评论

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。