这题想了很久 因为题里的给了递推公式 但是数据范围太大 用不了递归打表的 然后上网发现了
这个 其实还有N!/(K!(N-K)!)分别求出 N! K! (N-K)!中因子2的个数 如果N!中2的因子个数大于
后两项的和 那么就是偶数 如果等于就为奇数
判定准则Cn^m(m≤n)的奇偶性取决于m和n—m的二进制表达式中是否存在位于同一数位上的
两个数码都是1,如果存在,Cn^m是偶数,否则Cn^m就是奇数.
#include <iostream> #include<cstdio> using namespace std; int main() { int n,k; while(~scanf("%d%d",&n,&k)) printf("%d\n", k&(n-k)?0:1); return 0; }
下面是我做的
N!/(K!(N-K)!)分别求出 N! K! (N-K)!中因子2的个数 如果N!中2的因子个数大于
后两项的和 那么就是偶数 如果等于就为奇数
#include <iostream> #include<cstdio> using namespace std; int main() { int n,k; long long a[35]; a[1]=2; for(int i=2; i<=32; i++) a[i]=2*a[i-1]; while(~scanf("%d%d",&n,&k)) { if(n==k||k==0) { printf("1\n"); continue; } int w=0,b=0,c=0; for(int i=1; i<=32; i++) { w+=n/a[i]; b+=k/a[i]; c+=(n-k)/a[i]; } if(w>b+c) printf("0\n"); else printf("1\n"); } return 0; }