题意:
给你个N,统计C(N,0),C(N,1)。。,C(N,N)中奇数的个数
算法:
统计N中1的个数就可以了,然后快速幂


#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<vector> #include<string> #include<math.h> #include<map> #include<set> #include<algorithm> using namespace std; int mp[100][100]; long long quickpow(int m,int n) { long long b = 1; while (n > 0) { if (n & 1) b = (b*m); n = n >> 1 ; m = (m*m); } return b; } int main( ) { int N; while( scanf("%d",&N) != EOF ) { int ans = 0; while( N ) { int f = N & 1; if( f ) ans++; N = N / 2; } printf("%I64d\n",quickpow(2,ans)); } return 0; }