PAT-BASIC1049——数列的片段和
我的PAT-BASIC代码仓:https://github.com/617076674/PAT-BASIC
原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805275792359424
题目描述:
知识点:数学
思路:找规律
假设所给数组的长度为n。对于索引为i的元素,其出现次数是(n - i) * (i + 1)。注意int型数据会越界,需要用long型数据。
时间复杂度是O(n)。空间复杂度是O(1)。
C++代码:
#include<iostream>
#include<vector>
using namespace std;
int main(){
long n;
cin >> n;
vector<double> nums;
double tempNum;
for(int i = 0; i < n; i++){
cin >> tempNum;
nums.push_back(tempNum);
}
long count[n];
for(int i = 0; i < n; i++){
count[i] = (n - i) * (i + 1);
}
double result = 0.0;
for(int i = 0; i < n; i++){
result += count[i] * nums[i];
}
printf("%.2f", result);
return 0;
}
C++解题报告: