C(m,n)是一个组合数
N!含有质因数2的个数,等于N减去N的二进制表示中1的个数。
假设m!中2因子个数为a,n!中2因子个数为b,(m-n)!中2因子个数为c,则显然有a>=(b+c);并且当a==b+c时,一定为奇,否则为偶。
#include <iostream>
using namespace std;
int getn(int n)
{
int a=n,ans=0;
while(a>0)
{
if(a&1)ans++;
a=a>>1;
}
return n-ans;
}
int main()
{
int n,m;
while(cin>>m>>n)
{ int t=getn(m-n);
m=getn(m);
n=getn(n);
if(m==t+n)
cout<<"ODD"<<endl;
else cout<<"EVEN"<<endl;
}
return 0;
}