您的位置:首页 > 其它

UVa 10014 - Simple calculations

2012-07-29 19:36 369 查看
给出一个数列ci(1<=ci<=n),然后给出数列ai中的a0和a(n+1),并给出一个公式ai = ( a(i-1) + a(i+1) ) / 2 - ci。求a1。

做了很长时间,也没弄对,最后看的别人的解题报告。。。。。

由给出公式得:2ai = a(i-1) + a(i+1) -2ci ,依次使i=1,2......n,写出n个式子,把它们相加,

得到:a1 + an = a0 + a - 2(c1 + …… + cn), 再使c的下标i=1......n,写出n个式子,把他们相加。

得到:(n + 1)a1 = na0 + an+1 - 2(nc1 + (n-1)c2 + (n-2)c3 + …… + cn)。

代码:

#include<iostream>
#include<cstdio>

using namespace std;

int main()
{
int T, n, i;
double a, b, c, sum;
cin >> T;
while(T--)
{
cin >> n >> a >> b;
sum=0;
for(i=0; i<n; i++)
{
cin >> c;
sum+=(n-i)*c;
}
printf("%0.2lf\n", (n*a+b-2*sum) / (n+1));
if(T)
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: