数论(poj 1401)
题目:Factorial
题意:求N!末尾的0 的数量。
思路:10 = 2 * 5;N!中的2 的数量肯定比 5多;只需寻找5 的数量,暴力寻找TLE;
快点的方法:f(N) = N/5 + f(N/5) ;
我们知道,在1->60的数中,以下的数可以被5整除:
5,10,15,20,25,30,35,40,45,50,55,60
共60/5 = 12(个)。
其中,
25,50可以被25整除,即25和50可以贡献两个5的因子。
即其中可以贡献2个5的因子的个数为60/25 = 2(个)。
贡献3个5的因子的没有了,因为60/125 = 0。
所以共有12 + 2 = 14 (个)5的因子。(即1 * 10 + 2 * 2).
#include <cstdio>int m, n,sum5;
int cal(int n){
if(n == ) return ;
sum5 = n/ + cal(n/);
return sum5;
}
int main(){
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
scanf("%d", &m);
while(m--){
scanf("%d",&n);
sum5 = ;
printf("%d\n",cal(n));
}
return ;
}
数论(poj 1401)的更多相关文章
- ACM: POJ 1401 Factorial-数论专题-水题
POJ 1401 Factorial Time Limit:1500MS Memory Limit:65536KB 64bit IO Format:%lld & %llu ...
- POJ 1401
#include<iostream>using namespace std;int main(){ int num; int i; int sum; cin> ...
- POJ 1401 Factorial
题意:求一个数的阶乘最后边有几个0. 解法:如果有0说明这个数含有2和5这两个因子,对于一个阶乘来说因子2的数量一定比5的数量多,所以只要算有几个5就可以了,依次算5的个数,25的个数,125的个数… ...
- Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
一.Description The most important part of a GSM network is so called Base Transceiver Station (BTS). ...
- POJ 1401:Factorial 求一个数阶乘的末尾0的个数
Factorial Time Limit: 1500MS Memory Limit: 65536K Total Submissions: 15137 Accepted: 9349 Descri ...
- 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)
青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问 ...
- POJ 1150 The Last Non-zero Digit 数论+容斥
POJ 1150 The Last Non-zero Digit 数论+容斥 题目地址: id=1150" rel="nofollow" style="colo ...
- ACM-简单题之Factorial——poj1401
转载请注明出处:http://blog.csdn.net/lttree Factorial Time Limit: 1500MS Memory Limit: 65536K Total Submis ...
- ACM-简单的主题Factorial——poj1401
明出处:http://blog.csdn.net/lttree Factorial Time Limit: 1500MS Memory Limit: 65536K Total Submission ...
随机推荐
- Arch命令行与安装包
>>mkfs.vfat # pacman -S do ...
- teamviewer 过期解决办法
参考资料: http://blog.csdn.net/z249683156/article/details/41842271
- Uiautomator自动编译运行脚本
Uiautomator的编译运行过程需要输入好几个命令,太麻烦. 花了点时间写了个简单的bat.方便多了.id输入当前使用的SDK ID号(android list target命令可以查看到),cl ...
- C#占位符和格式化字符串
static void Main() { string c=Console.ReadLine(); string d=Console.ReadLine(); Console.WriteLine(c+& ...
- VS2010 "error MSB8011” 解决方法
http://blog.csdn.net/heihei36/article/details/8923971 —————————————————————————————————————————————— ...
- CSS样式的插入方式
1.外部样式: 当样式需要应用于很多页面时,外部样式表将是理想的选择.<head> <link rel="stylesheet" type="text/ ...
- vc++ 如何添加右键弹出菜单
一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图标 2.于菜单编辑器内编辑菜单 四.添加代码(红色部分) void CCM ...
- 安卓中adapter的应用
个人菜鸟总结,期待大神指点,悉心倾看! Adapter是ListView界面与数据之间的桥梁,Adapter提供对数据的访问,也负责为每一项数据产生一个对应的View(白话通俗点:先写adapter为 ...
- UIScrollViewDelegate
一.执行顺序:(scrollView加后面的)willBeginDragging // 将要开始拖拽,手指已经放在view上并准备拖动的那一刻 DidScroll ...
- 在Linux中的文本模式下手动安装 Parallels Tools
1.启动虚拟机. 2.当看到提示 X Server 无法启动的消息时,使用 Ctrl+Option+F1(Ctrl+Alt+F1)切换到另一个虚拟控制台并输入登录信息. 3 从“虚拟机”菜单中选择“安 ...