地址
http://acm.hdu.edu.cn/showproblem.php?pid=2086
定位
数学题
通式推导
分析
很容易发现规律写出通项公式,借助通项公式可以由 A0 和 A1 求得 An+1 。
由 Ai=Ai−1+Ai+12−Ci ,得 Ai+1=2Ai−Ai−1+2Ci 。
列出前几项
A2=2A1−A0+2C1
A3=2A2−A1+2C2=3A1−2A0+4C1+2C2
A4=2A3−A2+2C3=4A1−3A0+6C1+4C2+2C3
归纳得
An+1=(n+1)A1−nA0+∑ni2(n−i+1)Ci
代码
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- using namespace std;
- int main() {
- int n;
- double a0,a1,ax,sum,tmp;
- while(scanf(“%d”,&n)!=EOF) {
- sum=0.0;
- scanf(”%lf %lf”,&a0,&ax);
- for(int i=0; i<n; i++) {
- scanf(”%lf”,&tmp);
- sum+=2*(n-i)*tmp;
- }
- a1=(ax+n*a0-sum)/(n+1);
- printf(”%.2lf\n”,a1);
- }
- return 0;
- }
性能
Exe.Time | Exe.Memory | Code Length | Language |
---|---|---|---|
171MS | 1880K | 428B | c++ |