您的位置:首页 > 其它

【CodeForces - 598A】Tricky Sum

2017-07-30 11:04 267 查看
点击打开链接

                                                                                                           Tricky
Sum

In this problem you are to calculate the sum of all integers from 1to 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, because1, 2 and 4 are 20, 21 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.

Example

Input
2
4
1000000000


Output
-4
499999998352516354


Note

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

//            有些编译器不接受long long 所以用_int64 或头文件改成C++

//代码如下:

#include <cstdio>
int main()
{
long long int sum,mul,ans,k;
long long int n;
int t;
scanf ("%d",&t);
while(t--)
{
ans = 1;
mul = 1;
k = 1;
scanf ("%lld",&n);
sum = n * (n+1) / 2;
while (k <= n)
{
k*=2;
ans++;
}
// for (long long i = 1 ; i <= ans ; i++)
// {
// mul *= 2;
// }
k = k - 1;
sum = sum - 2*k;
printf ("%lld\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息