PAT A1104/B1049 Sum of Number Segments (20point(s))

题目链接
每个在序列中的数会在两部分出现,一部分是以自己为首元素的子串,次数为n-i,另一部分是i之前元素为首的子串中,在一个元素的首的所有子串中也出现(n-i)次,一共是i*(n-i)+(n-i),如果按这个写法写case 2,case 3会出错,合并同类项写成(i+1)(n-i)就会AC,我也不知道为什么。

#include<cstdio>
double sum=0;
int n;
int main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        double temp;
        scanf("%lf",&temp);
        sum+=temp*(i+1)*(n-i);
    }
  printf("%.2f",sum);
  return 0;
}
发布了81 篇原创文章 · 获赞 0 · 访问量 662

猜你喜欢

转载自blog.csdn.net/weixin_44546393/article/details/105457828
今日推荐