心得
在处理较大数据的时候,要注意处处防止溢出。就算结果是long long int型,过程中也不能出现int。
这道题不难,易错点就在溢出上。一开始变量都定义成double,后两个测试点不通过。改成long long int就好了。
题目
代码
#include<iostream>
using namespace std;
int main()
{
long long int total;
cin>>total;
//系数
long long int i;
long long int k[100000];
for(i=0;i<total;i++)
{
k[i]=(i+1)*(total-i);
}
//输入
double arr[100000];
for(i=0;i<total;i++)
{
cin>>arr[i];
}
//计算
double sum=0;
for(i=0;i<total;i++)
{
sum+=arr[i]*k[i];
}
//输出
printf("%.2f",sum);
cout<<endl;
return 0;
}