现在的位置: 首页 > 综合 > 正文

URAL 1047 Simple Calculations

2012年09月28日 ⁄ 综合 ⁄ 共 454字 ⁄ 字号 评论关闭

URAL_1047

    根据原式可以得a[n+1]-a[n]=a[n]-a[n-1]+2*c[n]①,设S[n]=c[1]+c[2]+…+c[n],对①式叠加相消可以得到a[n+1]-a[1]=a[n]-a[0]+2*S[n],整理一下得到a[n+1]-a[n]=a[1]-a[0]+2*S[n]②,对②式叠加相消可以得到a[n+1]-a[1]=n*(a[1]-a[0])+2*(S[1]+S[2]+…+S[n]),这样就可以求得a[1]了。

#include<stdio.h>
#include<string.h>
int N;
void solve()
{
    int i;
    double x, y, s = 0, a = 0, c;
    scanf("%lf%lf", &x, &y);
    for(i = 0; i < N; i ++)
    {
        scanf("%lf", &c);
        a += c;
        s += a;
    }
    printf("%.2f\n", -(2 * s - N * x - y) / (N + 1));
}
int main()
{
    while(scanf("%d", &N) == 1)
    {
        solve();
    }
    return 0;
}

抱歉!评论已关闭.