对特定Q位末尾零,求解N!的N的分治算法
来源:互联网 发布:淘宝如何给差评 编辑:程序博客网 时间:2024/05/29 11:45
#include<iostream>#include<string>using namespace std;int solve(int b){int ans=0 ;while(b>0){ans+=b/5; //计算 N! 最后连续的0的个数的公式:NUM(0)=N/5+N/25+N/125.......b/=5;//Q;为什么是这个公式?A:N!后的零的个数由N!的因子中2,5的个数决定,//而2的个数一定大于等于5的数目,故只需考虑5的个数}//上式本意:统计N之中有多少数字可以被5,25,125...整除,从而间接的得知 N! // 中有多少5的因数; return ans;}int main(){int Q;int d=500000000; //500000000/5=1e10 够用了int s=0;cin>>Q;while(s<=d){ // 分治求范围int mid=(s+d)/2;int ans=solve(mid);if(ans>Q)d=mid-1;else if(ans<Q) s=mid+1;else cout<<mid<<endl,exit(0);}cout<<"No found\n";return 0;}
阅读全文
0 0
- 对特定Q位末尾零,求解N!的N的分治算法
- n的阶乘末尾零的个数
- 快速求N!末尾零的个数
- n的阶乘(n!)末尾零(0)的个数
- 求N的阶乘N!末尾有多少个零
- 分治算法实现两个n位的正整数相乘
- 一步一步写算法(之n!中末尾零的个数统计)
- 一步一步写算法(之n!中末尾零的个数统计)
- 算法--求n!末尾0的个数
- 求n的阶乘的末尾有多少个零
- python求解给定一个整数N,求N!末尾有多少个0,求N!的二进制中最低位1的位置
- 求出任意N!的末尾有多少个零
- C++练习之求N!末尾零的个数
- 知识点(求n!的末尾有几个零)
- ACM_数论_阶乘N!的末尾有几个零
- n的阶乘结果中末尾有多少个零?
- 求n的阶乘末尾有几个零
- 计算N的阶乘结果末尾含多少个零
- git系列1
- 字符集
- 有关session生命周期
- JSP案例_利用JBDC连接Mysql数据库,并查询数据
- 各种Request之Demo
- 对特定Q位末尾零,求解N!的N的分治算法
- github 上新建仓库
- 利用中介者模式与观察者解决购物车与商品列表联动问题
- Linux 下G++编译C++11
- Bokeh库快速入门
- svn merge和branch
- 类似ios select下拉选择框的实现
- 高通AF驱动配置
- 设计模式--原型模式