#include<iostream>
#include<iomanip>
using namespace std;
#define MAX_N 100005
double a[MAX_N];
int main(){
int N;
double sum=0;
cin>>N;
for(int i=0;i<N;i++){
cin>>a[i];
}
for(int i=0;i<N;i++){
for(int j=0;j<N-i;j++){
for(int k=i;k<=j+i;k++){
sum+=a[k];
//cout<<a[k]<<" ";
}
//cout<<endl;
}
//cout<<endl;
}
cout<<fixed<<setprecision(2)<<sum<<endl;
}
后来发现我只要在输入的时候统计这个数字会出现的次数即可
正确代码
#include<iostream>
#include<iomanip>
using namespace std;
#define MAX_N 100005
double a[MAX_N];
int main(){
int N;
double sum=0;
cin>>N;
for(int i=0;i<N;i++){
cin>>a[i];
sum+=a[i]*(i+1)*(N-i);
}
cout<<fixed<<setprecision(2)<<sum<<endl;
}

本文介绍了一种优化的算法实现方式,用于快速统计特定数值的累积和,并通过对比两种不同的实现方法,展示了如何减少不必要的计算步骤,提高算法效率。
919

被折叠的 条评论
为什么被折叠?



