PAT(Basic Level) Practice : 1049 数列的片段和 (20分)

1049 数列的片段和 (20分)

测试点2的坑

double不行,必须使用long double
思路:找规律即可

0.1 4      4*1
0.2 3+3    3*2
0.3 3+3    2*3
0.4 4      1*4

{0.1 0.2 0.3 0.4 0.5}

0.1 5      5*1
0.2 4+4    4*2
0.3 3+3+3  3*3
0.4 4+4    2*4
0.5 5      1*5

设置精度

cout<<setiosflags(ios::fixed);
cout<<setprecision(2)<<res<<endl;

代码

#include <iostream>
#include"stdlib.h"
#include <vector>
#include <string>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;

#include<iomanip>
//精度

#include<cmath>
//round四舍五入取整


int main()
{
    int num;
    cin>>num;

    long double res=0;

    for(int i=0;i<num;i++)
    {
        long double t;
        cin>>t;
        res+=t*(num-i)*(i+1);
    }


    cout<<setiosflags(ios::fixed);
    cout<<setprecision(2)<<res<<endl;
    return 0;
}

posted @ 2020-09-25 17:43  韩天尊  阅读(120)  评论(0)    收藏  举报