1. 程式人生 > >浙大PAT 1049. 數列的片段和(20)

浙大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;
}