题目http://acm.zzuli.edu.cn/problem.php?id=2462
#include<stdio.h>
long long int b[31] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824};
int main()
{
int t;long long n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);long long sum=0;
sum = n*(1+n)/2;int i=0;long long ff=0;
while(b[i] <= n)
{
ff-=b[i];
i++;
}
sum+=(2*ff);
printf("%lld\n",sum);
}
return 0;
}