PAT甲级——1104 Sum of Number Segments (数学规律自动转型)
Posted yinhao-ing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT甲级——1104 Sum of Number Segments (数学规律自动转型)相关的知识,希望对你有一定的参考价值。
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90486252
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) and (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 1. 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
题目大意:给出N个数,按照要求找出所有的集合,将这些集合的数相加,输出结果。
思路:找出数学规律,总结公式,需要注意的是,系数k可能会超出int的范围,需要用long long int。(考察了自动转型的知识,题目是Google的人出的)
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() 6 { 7 int N; 8 long long int k; 9 scanf("%d", &N); 10 vector <double> v(N); 11 for (int i = 0; i < N; i++) 12 scanf("%lf", &v[i]); 13 double sum = 0; 14 for (int i = 0; i < N; i++){ 15 k = (i + 1); 16 k *= N-i; 17 sum += k * v[i]; 18 } 19 printf("%.2lf\n", sum); 20 return 0; 21 }
以上是关于PAT甲级——1104 Sum of Number Segments (数学规律自动转型)的主要内容,如果未能解决你的问题,请参考以下文章
PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
PAT 1104 Sum of Number Segments
1104. Sum of Number Segments (20)数学题——PAT (Advanced Level) Practise
PAT (Advanced Level) 1104. Sum of Number Segments (20)
1104. Sum of Number Segments (20)数学题——PAT (Advanced Level) Practise
1104. Sum of Number Segments (20)数学题——PAT (Advanced Level) Practise