http://acm.hdu.edu.cn/showproblem.php?pid=2502
#include<math.h>
#include<ctype.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int T;
int n;
int i;
int s;//每个数的二进制个数
int a[25];
for(i=1;i<=20;i++)//前20个数的月之数
{
s=pow(2,i-1);
a[i]=s+s*(i-1)/2;
}
cin>>T;
while(T--)
{
cin>>n;
cout<<a[n]<<endl;
}
return 0;
}
/*二进制个数
1 1
2 2
3 4
4 8
. .
. .
. .
n s=pow(2,n-1);
*/
/*
第一位都是1
s
其他位一半1一半0
s*(n-1)/2
*/