1049. 数列的片段和(20)

xiaoxiao2021-02-28  45

//2019.3.4再看

题目:

本题不能硬来,否则肯定会超时的,所以要分析一波数学规律

分析:

从本题的例子来推的话:

1)对于1一共有4种情况:1,12,123,1234;

2)对于2一共有6种情况

先推带有2左边元素的:12,123,1234

只含有2及2右边元素的:2,23,234; 

3)对于3一共有5种:

先推带有3左边元素的:123,1234,23,234,

只含有3及3右边元素的:3,34; 

4)对于4一共有4种:1234,234,34,4,

总结规律为:一个数i被计算的次数:(i+1)*(n-i);

#include<cstdio> int main() { int n; //freopen("1049.txt","r",stdin); scanf("%d",&n); double a[n+1],sum=0; for(int i=0;i<n;i++) { scanf("%lf",&a[i]); sum+=a[i]*(i+1)*(n-i);//计算每个数算了多少次 } printf("%.2f",sum); return 0; }

 

转载请注明原文地址: https://www.6miu.com/read-2613402.html

最新回复(0)