有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1...q1分别是n,m在p进制下的组成。
就完了。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,bit=0; int main() { while (scanf("%d",&n)!=EOF) { bit=0; while (n) { if (n&1) bit++; n>>=1; } printf("%d\n",(1<<bit)); } return 0; }