时间限制:1s

内存限制:256MB

【问题述】

从m个不同元素中,任取n(n≤m)个元素并成一组,叫做从m个不同元素中取出n个元素的一个组合;从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数,记作C(m,n)。

你的任务是:计算C(m,n)末尾有几个0。如C(10,1)=10,末位有一个0。

【输入】

输入文件名为zero.in。

第一行一个数T(<=1000),表示数据组数

对于每一组数据:输入两个数,m和n

【输出】

输出文件名为zero.out。

对于每组数据输出一行,包含一个数,表示C(m,n)末尾有几个0

【输入输出样例】

zero.in

zero.out

3

10 1

11 7

20 4

1

1

0

【数据说明】

对于30%的数据,1<=m<=20;

对于70%的数据,1<=m<=1000

对于100%的数据,1<=m<=1000000

思路:

  就是根据C(m,n)=m! / ( n! * (m-n)! ), 分解因数2,和5.

 

#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
int t,n,m;
long long sum[],ans;
void work(long long x,long long y)
{
long long p=;
while(p<=x)
{
sum[]+=y*(x/p);
p=p*;
}
p=;
while(p<=x)
{
sum[]+=y*(x/p);
p=p*;
}
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
sum[]=sum[]=;
work(n,);
work(n-m,-);work(m,-);
ans=min(sum[],sum[]);
printf("%d\n",ans);
} return ;
}

最新文章

  1. 交换排序---快速排序算法(Javascript版)
  2. 在Unity中高效工作(上)
  3. ☀【Grunt】package.json, Gruntfile.js, npm install, grunt
  4. DATEDIFF()(转)
  5. C语言入门(16)——C语言的数组
  6. 控制流之while
  7. 2017-3-28 javaScript DOM 操作
  8. nopCommerce 3.9 大波浪系列 之 路由扩展 [多语言Seo的实现]
  9. Unity Shader入门教程(四)反射光斑的实现
  10. cookie中存中文
  11. Django ORM 知识概要
  12. 网络(最大)流初步+二分图初步 (浅谈EK,Dinic, Hungarian method:]
  13. shell生成rsync同步脚本
  14. Linux yum源
  15. nginx+ flume
  16. 4.1、实现4个LED灯同时闪烁
  17. jquery 学习(一):jQuery 简介
  18. C标准库 二
  19. 处理URL传递中文乱码问题
  20. Appium+python HTML测试报告(2)——一份报告模板(转)

热门文章

  1. zero to one (4)
  2. 构建基于虚拟用户的vsftpd服务器
  3. 3170: [Tjoi 2013]松鼠聚会
  4. 【Lintcode】112.Remove Duplicates from Sorted List
  5. Oracle字段增删改方法总结
  6. java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
  7. Hibernate错误:javax/persistence/EntityListeners
  8. HDOj-1412
  9. function multi-versioning in GCC
  10. Python 在windows上安装BeautifulSoup和request以及小案例