3219:Binomial Coefficients
keyword
二項係数 C++ 約数
概要
二項係数(n,k)(k,n<2^31)が2で割りきれるかどうかを求める問題。
階乗使った方の定義で、分子と分母が約数に2をいくつ含めるか求めればよい。2のべきで割り算するだけ。
int main(){ int n, k, i, j, cnt; while(scanf("%d%d",&n,&k)!=EOF){ cnt = 0; for(i=1;i<=31;i++) cnt+= (n>>i) - ((n-k)>>i) - (k>>i); printf("%d\n",cnt>0?0:1); } return 0; }