AC代码
#include<stdio.h>
#include<vector>
using namespace std;
vector<double> a;
int main(){
int n;
scanf("%d",&n);
double sum=0;
for(int i=0;i<n;i++){
double temp;
scanf("%lf",&temp);
a.push_back(temp);
}
for(int i=0;i<n;i++){
sum+=a[i]*(n-i)*(i+1);
}
printf("%.2lf\n",sum);
}原先写的,和上面的应该一样,但就是一个测试点不过
#include<stdio.h>
#include<vector>
using namespace std;
vector<double> a;
int main(){
int n;
scanf("%d",&n);
double sum=0;
for(int i=0;i<n;i++){
double temp;
scanf("%lf",&temp);
a.push_back(temp);
}
for(int i=0;i<n/2;i++){
sum+=(a[i]+a[n-1-i])*(n-i)*(i+1);
}
if(n%2==1){
sum+=a[n/2]*(n-n/2)*(n/2+1);
}
printf("%.2lf\n",sum);
}
本文介绍了一种使用C++实现的求和算法,并通过优化减少了重复计算,提高了效率。该算法利用了向量容器存储输入数据,并通过两种不同的循环方式实现了对序列中每个元素加权求和的功能。
2082

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



