hdu 4349
题目大意:
求组合数
(n0)(n1)⋯(nn)
中计算结果为偶数的个数;
思路:已知
(nm)(n>m)
为奇数,当且仅当
(nm)=m
时为奇数;
(nm)≡(n2m2)∗(n%2m%2)(mod2)
,
又已知
(01)=0
,
(11)=1
,
(10)=1
,
(00)=1
,
即求取n中1的个数;
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n;
while (~scanf("%d", &n))
{
int cnt = 0;
while (n)
{
if (n & 1)
{
cnt++;
}
n >>= 1;
}
printf("%d\n", (1 << cnt));
}
return 0;
}