题意:求杨辉三角形某一行奇数的个数。
输入:第一行有一个数T(1<=T<=10^5),代表数据组数。
第二行到第n+1行输入行号n(1<=n<=10^9)。
输出:n行,每一行一个数字代表该行的奇数个数。
题解:行号从0开始计数,求出每一行中1的个数t,2^t即为答案。
lowbit函数返回最低位1的位置。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n,T,x,q;
int lowbit(int x)
{
return x&-x;
}
int main()
{
cin>>T;
while(T--)
{
int res=0;
cin>>q;
q--;
while(q)
{
q -= lowbit(q);
res ++;
}
res = 1<<res;
cout<<res<<endl;
}
return 0;
}