| 组合数末尾的零 | ||||||
| ||||||
| Description | ||||||
|
从m个不同元素中取出n (n ≤ m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。组合数的计算公式如下: C(m, n) = m!/((m - n)!n!)
现在请问,如果将组合数C(m, n)写成二进制数,请问转这个二进制数末尾有多少个零。 | ||||||
| Input | ||||||
|
第一行是测试样例的个数T,接下来是T个测试样例,每个测试样例占一行,有两个数,依次是m和n,其中m ≤n ≤ 1000。 | ||||||
| Output | ||||||
|
分别输出每一个组合数转换成二进制数后末尾零的数量。 | ||||||
| Sample Input | ||||||
|
2 4 2 1000 500 | ||||||
| Sample Output | ||||||
|
1 6 这题是求组合数末尾的0,因为C(M,N)= M! / (M - N)!* N!,而且我们知道如果一个十进制数转化二进制数时末尾想要出现0的话,必然是2^N,且有N个0,因为可以被除N次,所以求出分母分子中2的倍数求出来,相接就是结果
|
Hust oj 1037 组合数末尾的零(组合数)
最新推荐文章于 2022-10-14 19:53:55 发布
本文介绍了一种算法,用于计算特定组合数C(m, n)转换为二进制后的末尾零的数量。通过分析组合数的定义及二进制特性,该算法有效地确定了分子和分母中2的倍数的个数之差,从而得到答案。


492

被折叠的 条评论
为什么被折叠?



