求一下1到n的和 再减去2的倍数。即为所得
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
#include <algorithm>
#define Wi(a) while((a)--)
#define Si(a) scanf("%d", &a)
#define Si64(a) scanf("%I64d", &a)
#define Pi(a) printf("%d\n", (a))
#define Pl(a) printf("%I64d\n", (a))
#define CLR(a, b) memset(a, (b), sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
int main()
{
int t; Si(t);
Wi(t)
{
__int64 n, ans; Si64(n);
ans = n*(n+1)/2;
for(int i = 0; pow(2, i) <= n; ++i)
{
ans -= (2*(pow(2, i)));
}
Pl(ans);
}
return 0;
}