关闭

CodeForces 598A Tricky Sum

298人阅读 评论(0) 收藏 举报
分类:
Q - Q
Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

Description

In this problem you are to calculate the sum of all integers from 1 to n, but you should take all powers of two with minus in the sum.

For example, for n = 4 the sum is equal to  - 1 - 2 + 3 - 4 =  - 4, because 12 and 4 are 2021 and 22 respectively.

Calculate the answer for t values of n.

Input

The first line of the input contains a single integer t (1 ≤ t ≤ 100) — the number of values of n to be processed.

Each of next t lines contains a single integer n (1 ≤ n ≤ 109).

Output

Print the requested sum for each of t integers n given in the input.

Sample Input

Input
2
4
1000000000
Output
-4
499999998352516354

Hint

The answer for the first sample is explained in the statement.

没想到直接计算竟然AC了,本来以为会有什么技巧呢,真水。。。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
	__int64 t,i,n,sum;
	scanf("%I64d",&t);
	while(t--)
	{
		sum=0;
		scanf("%I64d",&n);
		sum=n*(n+1)/2;
		for(i=1;i<=n;i=i*2)
		{
			sum=sum-2*i;
		}
		printf("%I64d\n",sum);
	}
	return 0;
}


0
0
查看评论

codeforces 598A Tricky Sum

Description 求和是一种最常见的运算,我们经常做的就是1加到n的和。例如,1加到100的和是5050。但是现在,我们稍微变动一下求和方法,对于属于2的幂次的数,我们做的是减法,其余仍旧做加法。例如,当n=4的时候,最后的结果应该是-1-2+3-4=-4,因为1、2、4分别是2的0次方...
  • z1192277815
  • z1192277815
  • 2016-07-21 23:06
  • 139

Codeforces 598A Tricky Sum 【计数】

A. Tricky Sum time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output In this problem ...
  • chenzhenyu123456
  • chenzhenyu123456
  • 2015-11-15 18:27
  • 562

CodeForces 598A:Tricky Sum【数学】

Tricky Sum Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Sub...
  • lin14543
  • lin14543
  • 2016-03-12 15:57
  • 336

题解: Codeforces 598A Tricky Sum (水)

……题目 A. Tricky Sum time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output In this p...
  • sun897949163
  • sun897949163
  • 2015-12-06 18:05
  • 582

【Codeforces 598A】 Tricky Sum

Tricky SumDescription 求和是一种最常见的运算,我们经常做的就是1加到n的和。例如,1加到100的和是5050。但是现在,我们稍微变动一下求和方法,对于属于2的幂次的数,我们做的是减法,其余仍旧做加法。例如,当n=4的时候,最后的结果应该是-1-2+3-4=-4,因为1、2、4...
  • WYK1823376647
  • WYK1823376647
  • 2016-07-24 21:47
  • 114

【CodeForces】[598A]Tricky Sum

挺水的一题 先公式求1~n的和 然后依次减去2的i次方 直到2的i次方大于n
  • u011493189
  • u011493189
  • 2016-04-07 13:33
  • 131

【CodeForces】598A - Tricky Sum

http://codeforces.com/problemset/problem/598/At组数据(1≤t≤100)。给定n(1≤n≤1e9),把1到n中的2^0、2^1、2^2…..变成负数。求n个数之和。Examples input 2 4 1000000000 output -4...
  • zqf3535
  • zqf3535
  • 2017-08-14 16:34
  • 55

【CodeForces - 598A】Tricky Sum

点击打开链接                                      ...
  • qq_39033364
  • qq_39033364
  • 2017-07-30 11:04
  • 56

(CodeForces - 598A)Tricky Sum

(CodeForces - 598A)Tricky SumIn this problem you are to calculate the sum of all integers from 1 to n, but you should take all powers of two with minu...
  • wozaipermanent
  • wozaipermanent
  • 2017-09-07 07:55
  • 163

CodeForces - 598A Tricky Sum (快速幂)

CodeForces - 598A Tricky Sum Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u...
  • yanghui07216
  • yanghui07216
  • 2016-03-12 13:38
  • 441
    个人资料
    • 访问:174655次
    • 积分:8479
    • 等级:
    • 排名:第2792名
    • 原创:705篇
    • 转载:2篇
    • 译文:0篇
    • 评论:19条
    最新评论