Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) B

 1 #include<bits/stdc++.h>
 2 
 3 int n,T,cnt;
 4 
 5 int read()
 6 {
 7     char ch = getchar();
 8     int num = 0;
 9     bool fl = 0;
10     for (; !isdigit(ch); ch=getchar())
11         if (ch=='-') fl = 1;
12     for (; isdigit(ch); ch=getchar())
13         num = (num<<1)+(num<<3)+ch-48;
14     if (fl) num = -num;
15     return num;
16 }//快读 
17 int main()
18 {
19     T = read();
20     while (T--)
21     {
22         int n = read();
23         cnt = 0;
24         while (n)
25         {
26             cnt++;
27             n = n&(n-1);
28         }//获得二进制n当中1的个数 
29         printf("%d\n",1<<cnt);//1向左移cnt位 
30     }
31     return 0;
32 }

 

posted @ 2018-11-05 22:49  huluxin  阅读(111)  评论(0编辑  收藏  举报