CSU 1021 组合数末尾的零(简单题)
来源:互联网 发布:学美工设计培训班 编辑:程序博客网 时间:2024/05/14 18:41
从m个不同元素中取出n (n ≤ m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。组合数的计算公式如下:
C(m, n) = m!/((m - n)!n!)
现在请问,如果将组合数C(m, n)写成二进制数,请问转这个二进制数末尾有多少个零。
Input
第一行是测试样例的个数T,接下来是T个测试样例,每个测试样例占一行,有两个数,依次是m和n,其中n ≤ m ≤ 1000。
Output
分别输出每一个组合数转换成二进制数后末尾零的数量。
Sample Input
2
4 2
1000 500
Sample Output
1
6
解题思路:
因为最后统计结果转化成二进制末尾0的个数,其实就是求结果含有多少个2的倍数。分别统计再作差即可。
#include<iostream>using namespace std;int main(){ int n; cin>>n; while(n--) { int a,b; cin>>a>>b; int i,j,count=0,flag=0,blag=0; for(j=b+1;j<=a;j++) //统计从b+1到a之间连续乘积的结果的2的倍数个数 { int m=j; while(m%2==0) { m=m/2; flag++; } } for(i=1;i<=a-b;i++) //统计从1到a-b之间连续乘积的结果的2的倍数个数 { int n=i; while(n%2==0) { n=n/2; blag++; } } count=flag-blag; //两者之差即为末尾0的个数 cout<<count<<endl; } return 0;}
0 0
- CSU 1021 组合数末尾的零(简单题)
- CSU 1021 组合数末尾的零
- csu 1021 组合数末尾的零(思路)
- 组合数末尾的零
- 组合数末尾的零
- 组合数末尾的零
- HRBUST 1037 组合数末尾的零
- CSU1021: 组合数末尾的零
- ACM:组合数末尾的零
- 【哈工大oj】1037 - 组合数末尾的零(位运算,好题)
- Hust oj 1037 组合数末尾的零(组合数)
- CSU1021-组合数末尾的零-打表、模拟
- 哈理工OJ 1037组合数末尾的零(思维)
- lintcode-末尾的零
- 阶乘末尾的零
- ZJCOJ 勤劳的ACgirls 组合数+求末尾的0
- 100!末尾零的个数
- 阶乘末尾零的个数
- JavaScript学习笔记17-与或非处理复杂的条件
- 打开指定文件夹并批量修改文件名(python)
- EasyUI-datagrid表格(基本使用)
- JQuery放大镜
- 图论(四)--拓扑排序
- CSU 1021 组合数末尾的零(简单题)
- java使用cookie记住密码
- 多人聊天(无问题的)
- CXF框架入门实例
- centos 7 安装ntfs支持
- CodeForces 645 E.Intellectual Inquiry(dp+贪心)
- Theme主题
- cxf生成webservice代码
- PHP基本常识