题目链接:https://pintia.cn/prolem-sets/994805342720868352/problems/994805363914686464
对于本道题目,有多种想法,将其中一种想法总结如下:
1.对于题目的分析
比如有四个数字,下面用1,2,3,4分别代表各个数字,情况如下:
1
1 2
1 2 3
1 2 3 4
———————
2
2 3
2 3 4
————————
3
3 4
————————
4
————————
观察上面图示,可以发现:
有4个1,表示成4*1
有3个2,且有2组,表示成3*2*2
有2个3,且有3组,表示成2*3*3
有1个4,且有4组,表示成1*4*4
以上规律转化成for循环:
double temp ;
double sum = 0;
for(int i = 1; i <= N; i++)
{
temp = ans([i]*(N - i +1)*i;
}
对于以上规律,
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 100010;
double ans[maxn];
int main()
{
int N;
scanf("%d",&N);
for(int i = 1; i <= N; i++)
scanf("%lf",&ans[i]);
double sum = 0;
for(int i = 1; i <= N; i++)
{
sum += ans[i]*i*(N-i+1);
}
printf("%.2lf\n",sum);
}