【题解】【AcWing】3558. 整数和

121 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

3558. 整数和

原题传送:AcWing 3558. 整数和

编写程序,读入一个整数 NN

NN 为非负数,则计算 NN2N2N 之间的整数和;若 NN 为一个负数,则计算 2N2NNN 之间的整数和(包括两端整数)。

输入格式

第一行包含整数 TT ,表示共有 TT 组测试数据。

每组数据一行,一个整数 NN

输出格式

每组数据一行,一个结果。

数据范围

1T1001 \le T \le 100 , 100N100-100 \le N \le 100

输入样例:

2
2
-1

输出样例:

9
-3

思路:

等差数列求和公式。

题解:

#include <bits/stdc++.h>

using namespace std;

int f(int x)
{
	return (x + 2 * x) * (abs(x) + 1) / 2;
}

int main()
{
	int T;
	cin >> T;
	
	while(T--)
	{
		int x;
		cin >> x;
		
		int res = f(x);
		
		cout << res << endl;
	}

	return 0;
}