• PAT1107:Sum of Number Segments


    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

    思路

    题目要求求所有子集的和。

    1.第i个数在所有子集中出现的次数为(N - i + 1) * i;
    2.循环求和就行

    代码
    #include<iostream>
    #include<vector>
    #include<iomanip>
    using namespace std;
    int main()
    {
        int N;
        while(cin >> N)
        {
            vector<double> nums(N + 1);
            double sum = 0;
            for(int i = 1;i <= N;i++)
            {
               cin >> nums[i];
               sum += nums[i] * (N - i + 1) * i;
            }
            cout << fixed << setprecision(2) << sum << endl;
        }
    }
    

      

  • 相关阅读:
    Invoice Helper
    Product Helper
    Order Helper
    Case Helper
    Quote Helper
    C# 工厂模式示例
    若今生长剑浣花,生死无涯
    古代美到窒息的谎言
    C#解决微信支付Exception has been thrown by the target of an invocation(调用的目标发生了异常)的问题
    文能提笔控萝莉,转载自网上
  • 原文地址:https://www.cnblogs.com/0kk470/p/7746912.html
Copyright © 2020-2023  润新知