HDU2086:A1 = ?
来源:互联网 发布:软件著作权源代码格式 编辑:程序博客网 时间:2024/05/17 03:01
Problem Description
有如下方程:Ai =(Ai-1 + Ai+1)/2 -Ci (i = 1, 2, 3, .... n).
若给出A0, An+1, 和 C1, C2,.....Cn.
请编程计算A1= ?
若给出A0, An+1, 和 C1, C2,.....Cn.
请编程计算A1
Input
输入包括多个测试实例。
对于每个实例,首先是一个正整数n,(n <= 3000); 然后是2个数a0,an+1.接下来的n行每行有一个数ci(i = 1,....n);输入以文件结束符结束。
对于每个实例,首先是一个正整数n,(n <= 3000); 然后是2个数a0,an+1.接下来的n行每行有一个数ci(i = 1,....n);输入以文件结束符结束。
Output
对于每个测试实例,用一行输出所求得的a1(保留2位小数).
Sample Input
1 50.0025.00 10.00 2 50.00 25.00 10.00 20.00
Sample Output
27.5015.00
一道纯规律的题目
不难发现
n = 1时,有 a1 = a0/2 + a2/2 - c1
n = 2时,有 3/2*a1 = a0 + a3/2 - 2*c2 -
n = 3时,有 2*a1 = 3*a0/2 + a4/2 - 3*c3 - 2*c2 -
所以得出
n = k 时,有 (n+1)/2 * a1 = (n/2)*a0 + a(n+1)/2-
实现代码如下:
- #include
-
- int
main() - {
-
int n,i; -
double a0,an,c[3005]; -
while(~scanf("%d",&n)) -
{ -
scanf("%lf%lf",&a0,&an); -
for(i = 1;i<=n;i++) -
scanf("%lf",&c[i]); -
double ans,t = 0; -
for(i = 1;i<=n;i++) -
{ -
t = t+(n-i+1)*c[i]; -
} -
ans = a0*(0.5*n)+an/2.0-t; -
ans/=(0.5*(n+1)); -
printf("%.2lf\n",ans); -
} -
-
return 0; - }
0 0
- HDU2086:A1 = ?
- HDU2086:A1 = ?
- hdu2086-A1 = ?
- hdu2086 A1=?
- hdu2086 A1 = ?
- HDU2086 A1=?
- hdu2086 A1 = ?
- HDU2086 - A1=?(数学归纳法)
- hdu2086 A1=?(数学公式推导)
- hdu2086 A1 = ?(C语言)
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 宏基Acer Iconia A1-810…
- 背道而驰
- 别让孩子遭受“爱的伤害”
- C/C++函数指针总结
- 爱情保卫战经典语录全集
- VC6.0中如何改变对话框的背景颜色
- HDU2086:A1 = ?
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- Vim命令合集
- 对redis中单元测试框架的简单修改
- Main函数参数argc,argv说明
- 面向对象计算器(五)
- Python内使用OpenCV显示图像
- Android中为textView添加边框
- C#解析JSON