HDU 2086 A=? 数学题

题目描述:有一个公式,Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).,如果给出A0, An+1, 和 C1, C2, .....Cn要你计算出A1是多少。

解题报告:一个简单的数学题,我的做法先将公式变形得到:A[n] = 2*A[n-1]+2*C[n-1]-A[n-2],是分别定义两个数组,设A1 = x,然后两个数组里面一个存放第n项的系数,另一个存放第n项的常数,这样一直递推到第n+1项,然后直接解一元一次方程就可以了。代码附上:

 #include<cstdio>
#include<cmath>
const int MAX = +;
int n;
double xishu[MAX],changshu[MAX],C[MAX],a0,an1;
void dabiao() {
xishu[] = ;
changshu[] = ;
xishu[] = ;
changshu[] = 2.0*C[]-a0;
for(int i = ;i<=n+;++i) {
xishu[i] = 2.0*xishu[i-]-xishu[i-];
changshu[i] = 2.0*changshu[i-]+*C[i-]-changshu[i-];
}
}
int main() {
while(scanf("%d",&n)!=EOF) {
scanf("%lf%lf",&a0,&an1);
for(int i = ;i<=n;++i)
scanf("%lf",&C[i]);
dabiao();
double ans = (an1-changshu[n+])/xishu[n+];
printf("%.2lf\n",ans);
}
return ;
}
上一篇:我的Python成长之路---第八天---Python基础(25)---2016年3月5日(晴)


下一篇:使用注解开发,Lombok,多对一处理