#include <bits\stdc++.h>
using namespace std;
#define LL long long
const LL MAXN=1000000000;
LL a[30]={1};
LL b[30]={1};
int main()
{
for(int i=1;i<=30;i++)
a[i]=2*a[i-1];
for(int i=1;i<30;i++)
b[i]=a[i]+b[i-1];
int t;
LL n,ans;
scanf("%d",&t);
while(t--)
{
scanf("%I64d",&n);
ans=n*(n+1)/2;
int i=0;
while(n>=a[i])
i++;
i--;
ans-=2*b[i];
printf("%I64d\n",ans);
}
}cf 598A Tricky Sum
最新推荐文章于 2018-11-26 23:53:00 发布
本文介绍了一个使用C++编程解决数列求和问题的实例,通过定义两个数组a和b来实现数列的生成,并通过输入变量t进行循环处理,计算并输出特定数列的和。
548

被折叠的 条评论
为什么被折叠?



