浙大PAT 1049. 数列的片段和(20)

本题主要是理解题意和解题方式:

题意翻译一下: 求所有连续组合 的 和 --- 即统计所有组合中所有元素出现的次数! 如果把所有组合都遍历一遍再输出,肯定是跪掉

规律就是每个数字出现的次数为(N - i) * (i + 1) 次.

代码如下:

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

  system("pause");
  return 0;
}

原文地址:https://www.cnblogs.com/hkevin/p/5510065.html