PAT 1104. Sum of Number Segments (20)
2016-03-02 15:47
363 查看
1104. Sum of Number Segments (20)
时间限制200 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CAO, Peng
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For example, given the sequence {0.1, 0.2, 0.3, 0.4}, we have 10 segments: (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3,
0.4) (0.3) (0.3, 0.4) (0.4).
Now given a sequence, you are supposed to find the sum of all the numbers in all the segments. For the previous example, the sum of all the 10 segments is 0.1 + 0.3 + 0.6 + 1.0 + 0.2 + 0.5 + 0.9 + 0.3 + 0.7 + 0.4 = 5.0.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N, the size of the sequence which is no more than 105. The next line contains N positive numbers in the sequence, each no more than
1.0, separated by a space.
Output Specification:
For each test case, print in one line the sum of all the numbers in all the segments, accurate up to 2 decimal places.
Sample Input:
4 0.1 0.2 0.3 0.4
Sample Output:
5.00
这道题的坑点是要用double而不能用float。。另外计算的时候也不能嵌套for循环,不过这个算式推导并不难。
代码如下:
#include <iostream> #include <algorithm> #include <cmath> #include <vector> using namespace std; int N; vector<double> rawInput; int main(void) { cin>>N; rawInput.resize(N); for(int i = 0; i < N; i++) scanf("%lf",&rawInput[i]); double sum = 0; for(int i = 0; i < N; i++){ sum += rawInput[i] * (i+1)*(N-i); } printf("%.2f",sum); return 0; }
相关文章推荐
- Nginx Upstream Keepalive 分析
- python字符串操作和string模块代码分析
- sizeof 指针和数组的区别
- iOS- 指压即达,如何集成iOS9里的3D Touch
- TCP/IP参考模型
- BIT2014级软件学院程序设计-13 平面上的邮局
- Python脚本语言学习
- 关于4A网络安全管控平台控件加载失败的解决方法
- 获取本机IP地址(java)
- js实现checkbox的全选和反选
- ASP.NET MVC Html.ActionLink使用说明
- 自动挂载磁盘脚本
- iOS中属性的声明
- java小游戏第三弹 贪吃蛇
- 快速开发框架androidannotations
- CocoaPods安装和使用教程
- YARN环境中应用程序JAR包冲突问题的分析及解决
- 二叉树 非递归遍历
- 属性动画相关使用
- 淘宝架构演变三阶段简单总结