两个知识点: long double问题 与 c++中保留小数点后位数 #include<iomanip>
暴力解测试点2和3会超时
#include<iostream>
#include <iomanip>
using namespace std;
int main() {
int n = 0;
cin >> n;
double* num = new double[n];
for (int i = 0; i < n; i++) {
cin >> num[i];
}
double sum = 0;
double result = 0;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
sum += num[j];
result += sum;
}
sum = 0;
}
cout << fixed << showpoint << setprecision(2) << result << endl;
//cout << result;
}
转而使用数学归纳法寻找统一解的公式
即: m * ( n - i )( i + 1 );
时间复杂度改进为0(n)的第一次尝试:
测试点2出现错误: 该