zoukankan      html  css  js  c++  java
  • 蓝桥杯模拟一 数列求值

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

    displaystyle A_i = frac{A_{i-1} + A_{i + 1}}{2} - C_i 1 le i le nAi=2Ai1+Ai+1Ci   1in

    现在我们知道 A_0, A_{n + 1}A0,An+1 和 C_1, C_2, cdots C_nC1,C2,Cn

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

    输入格式

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

    第二行输入两个数 A_0A0 和 A_{n+1}An+1,接着是 nn 个数据分别是 C_1,C_2, cdots C_nC1,C2,Cn。所有的数据均是两位小数的浮点数。

    输出格式

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

    样例输入1

    1
    50.50 25.50
    10.15

    样例输出1

    27.85

    样例输入2

    2
    -756.89 52.52
    172.22 67.17

    样例输出2

    -761.49

    化简题目给出的公式可以得到 A1 = An+1 + n*A0 - 2*Cn - ... - 2*n*C1
    做题的时候注意力不集中,因为中间一个地方把i写成了n,找了半个小时的bug,好痛苦。。。
    希望正式考试的时候注意力能集中。

    #include<queue>
    #include<cmath>
    #include<cstdio>
    #include<string>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define maxn 1010
    #define debug(a) cout << #a << " " << a << endl
    using namespace std;
    typedef long long ll;
    int main() {
        int n;
        cin >> n;
        double x,y;
        cin >> x >> y;
        double c[maxn];
        for( int i = 1; i <= n; i ++ ) {
            cin >> c[i];
        }
        double sum = 0.0;
        sum = y + n * x;
        int j = 1;
        for( int i = n; i >= 1; i -- ) {
            sum = sum - 2 * j * c[i];  //这里i让我写成了n,改了半个小时
            j ++;
        }
        sum = ( sum * 1.0 ) / ( ( n + 1 ) * 1.0 );
        printf("%.2lf
    ",sum);
        return 0;
    }


    彼时当年少,莫负好时光。
  • 相关阅读:
    Linux shell 获取当前时间之前N天
    python 连接oracle 数据库
    Python 连接mysql
    python字符串反转
    java基础之数据类型转换
    java 基础之数据类型
    使用sublime编辑器编辑eclpse跑tomcat的项目不及时更新问题的解决方法
    日常git命令
    快速排序,按某个属性,或按“获取排序依据的函数”,来排序
    Gulp初识
  • 原文地址:https://www.cnblogs.com/l609929321/p/8660261.html
Copyright © 2011-2022 走看看