1049 数列的片段和 测试点2、3数据精度问题
问题
cnt=cnt+a[i]*(i+1)*(n-i);
此处容易溢出,因此必须用long double
注意点
cout的格式化输出,iomanip
cout<<fixed<<setprecision(2)<<cnt;
代码
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
long double a[100003];
int main(){
long n;
long double cnt=0;
cin>>n;
for(long i=0;i<n;i++){
cin>>a[i];
cnt=cnt+a[i]*(i+1)*(n-i);
}
cout<<fixed<<setprecision(2)<<cnt;
return 0;
}

浙公网安备 33010602011771号