题目描述:

  假设有一个数n,它的阶乘末尾有Q个零,现在给出Q,问n最小为多少?

解题思路:

  由于数字末尾的零等于min(因子2的个数,因子5的个数),又因为2<5,那么假设有一无限大的数n,n=2^x=5^y,可知x<<y。

所以我们可以直接根据因子5的个数,算阶乘末尾的零的个数。1<=Q<=10^8,所以可以用二分快速求解。

代码:

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
LL find_zeros (LL n)
{
LL ans = ;
while (n)
{
ans += n / ;
n /= ;
}
return ans;
}
int main ()
{
LL t, n, l = ;
scanf ("%lld", &t);
while (t --)
{
scanf ("%lld", &n);
LL low, high, mid;
low = ;
high = ;
while (low <= high)
{
mid = (low + high) / ;
LL num = find_zeros(mid);
if (num < n)
low = mid + ;
if (num >= n)//求出来的n要是最小的,所以这里不能直接返回
high = mid - ;
}
if (find_zeros(low) == n)
printf ("Case %lld: %lld\n", l++, low);
else
printf ("Case %lld: impossible\n", l++);
}
return ;
}

最新文章

  1. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试
  2. from collections import OrderedDict
  3. Python 操作 MongoDB
  4. 20145224&amp;20145238 《信息安全系统设计基础》 第一次实验
  5. git 使用钩子直接推送到工作目录
  6. [转载] TLS协议分析 与 现代加密通信协议设计
  7. Mplayer 官方中文手册
  8. Win7 IIS配置 applicationHost.config 错误:无法识别的特性“setProfileEnvironment” 解决方法
  9. (入门篇 NettyNIO开发指南)第三章-Netty入门应用
  10. [转]SQL Server 表变量和临时表的区别
  11. C#学习-接口与抽象类
  12. JS高程关于ajax的学习笔记
  13. power designer的安装
  14. 静态库lib和动态库dll相关总结
  15. 计时器setInterval()
  16. KVM libvirt的CPU热添加
  17. datagrid中reoload提交时如何批量提交表单中的查询条件
  18. LDa 通俗理解
  19. CentOS 7 systemd添加自定义系统服务
  20. 《spring技术内幕》读书笔记(1)——什么是POJO模式

热门文章

  1. linux是类unix操作系统
  2. 百度统计的JS脚本原理解析
  3. requests库帮助
  4. DacningLinks实现
  5. Eclipse中git插件导入远程库和上传项目源代码到远程库
  6. LoadRunner系列之—-04 录制基于https协议的脚本
  7. java-组合优于继承
  8. xgboost python windows编译问题
  9. [办公自动化]EXCEL不大,但是保存很慢
  10. 不同节点 IP 时间同步 分布式时间同步系统的参考时间获取技术分析