判断C(n,k)的奇偶性 soj2668

简介:
C(n,k)

 

Description

求组合数 C ( n , k) 的奇偶性

Input

文件是多case的,每行输入一个 n (1<=n<=10^9)和 k(0<=k<=n) ,当 n 等于 0 且 k 等于 0 时输入结束

Output

对于每一个case,输出一行,为组合数 C ( n , k) 的奇偶性,奇输出1,偶输出0

Sample Input

2 0 2 1 0 0

Sample Output

1 0

 

 题意:求C(n,k)的奇偶性。显然把C(n,k)的值直接求出来进行判断是不可行的。

 由于C(n,k)=n!/k!*(n-k)!,要判断奇偶性,即比较分子与分母含有因子2的个数,因此就转化为求n!中含有因子2的个数。

 

复制代码

  
  
#include < iostream >
using namespace std;

int count( int n)
{
int num = 0 ;
while (n)
{
num
+= n / 2 ;
n
= n / 2 ;
}
return num;
}

int main( void )
{
int n,k;
while (scanf( " %d%d " , & n, & k) == 2 &&! (n == 0 && k == 0 ))
{
int a,b,c;
a
= count(n);
b
= count(k);
c
= count(n - k);
if (a > b + c)
printf(
" 0\n " );
else
printf(
" 1\n " );
}
return 0 ;
}
复制代码
本文转载自海 子博客园博客,原文链接: http://www.cnblogs.com/dolphin0520/archive/2011/04/12/2014026.html 如需转载自行联系原作者
相关文章
|
3月前
判断用户输入的整数是奇数还是偶数
【10月更文挑战第14天】判断用户输入的整数是奇数还是偶数。
32 2
|
8月前
|
C语言
判断回文数
C 语言实例 - 判断回文数。
49 1
判断数的奇偶性
判断数的奇偶性
104 0
判断是否是质数
判断是否是质数
76 0
|
算法 Python
回文数的判断
回文数的判断
127 0
09:判断能否被3,5,7整除
09:判断能否被3,5,7整除
391 0
判断是否为2的次幂
判断是否为2的次幂
103 0
|
人工智能
利用数组,实现回文数的判断
任务:利用数组,实现回文数的判断 #include&lt;iostream&gt; using namespace std; bool isPalindrome(int); int main() { int m,n; cout&lt;&lt;"求多少以内的回文数?"&lt;&lt;endl; cin&gt;&gt;m; for(n=1;n&lt;=m;++n) if(isPali
1328 0