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;
}