题目描述
解题思路
每个数出现的次数挺好算的, 1 − > i − > n 1->i->n 1−>i−>n,前面有数出现i的情况有 i i i,后面有数出现 i i i的情况是 ( n − i + 1 ) (n - i + 1) (n−i+1),匹配一下就是 i ∗ ( n − i + 1 ) i * (n - i + 1) i∗(n−i+1)
Code
#include <iostream>
#include <cstdio>
using namespace std;
const long long mod = 1000000007;
long long ans, x, n;
int main(){
scanf ("%lld", &n);
for (int i = 1; i <= n; i++)
{
scanf ("%lld", &x);
ans += x * (n - i + 1) * i % mod;
}
printf ("%lld", ans % mod);
}