您的位置:首页 > 其它

1049. 数列的片段和

2017-08-14 20:19 120 查看
原题链接:

思路: 规律是(n-i)(i+1)。下面是我的理解,把数从左往右从0开始编号,最右边就是n-1。假设当前数在第i位,以他为首的片段则有n-i(n-1-i+1,从最后一位到当前,再加上当前位置)个,而包含这个片段的所有片段则有i+1个(从0到i的每个片段都包含,一共有(n-i)次),所以出现(i+1)(n-i)次

#include<bits/stdc++.h>
using namespace std;
void solve(){
double ans=0;
double x;
int n;
cin>>n;
for(int i=0;i<n;i++){
scanf("%lf",&x);
//(n-i)*(i+1)可能整型溢出
ans+=(n-i)*x*(i+1);
}
printf("%.2f\n",ans);
}
int main(){
//freopen("in.txt","r",stdin);
solve();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: