PAT1049 数列的片段和 (20 分)

心得

在处理较大数据的时候,要注意处处防止溢出。就算结果是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;
}
 

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/87950970
今日推荐