简要题意:
有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).
若给出A0, An+1, 和 C1, C2, .....Cn. 求A1
解题思路:
通过n=1,n=2,n=3时求A1
n=1时 2A1=A0+A2 2C1
n=2时 3A1=2A0+A2 -4C1-2C2
n=3时 4A1=3A0+A2 -6C1-4C2-2C3
……
n时 (n+1)A1=nA0+An+1 -2[nC1+(n-1)C2+(n-2)C3 ……+Cn]
细节处理:
- 定义数组应为实型数组。
- 输出结果保留两位小数。
源代码:
#include<iostream>
#define N 3000+10
double c[N], d[N];
using namespace std;
int main()
{
int n;
double af, al, A=0;
while(cin>>n)
{
double a=0.0;
cin>>af>>al;
a=n*af+al;
for(int i=1,j=n;i<=n;i++,j--)
{
cin>>c[i];
d[i]=2*c[i];
a-=j*d[i];
}
A=a/(n+1);
printf("%.2lf\n",A);
}
return 0;
}