51nod 1003 阶乘后面0的数量
来源:互联网 发布:web数据挖掘pdf 编辑:程序博客网 时间:2024/05/19 22:02
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1003
思路:看有多少个零,其实就是看阶乘中所有相乘的数中含有因子2和5的个数,而2的个数远远多于5的个数,所以记录所有数中含有因数5的个数。
这是自己写的矬代码,875ms,差点超时。
#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,ox3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;const int INF = ( 2e9 ) + 2;const int maxn = 1e9+10;int main(){ int n; scanf("%d",&n); int ans=0; for(int i=5,k=1;i<=n;i*=5,k++) { for(int j=1;j*i<=n;j++) { if(j%5!=0&&i*j<=n) ans+=k; } } printf("%d\n",ans);}
还有一种很好的写法:n/5 为为含有一个5的个数,n/25为含有2个5的个数。。依此类推
#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,ox3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;const int INF = ( 2e9 ) + 2;const int maxn = 1e9+10;int main(){ int n; scanf("%d",&n); int ans=0; while(n>=5) { ans+=n/5; n/=5; } printf("%d\n",ans);}
阅读全文
0 0
- 51-nod 1003 . 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量
- 51nod 1003阶乘后面0的数量
- 51nod-1003 阶乘后面0的数量
- 51Nod 1003 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量
- 51nod-【1003 阶乘后面0的数量】
- 51nod 1003 阶乘后面0的数量
- 51nod-1003 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量
- 51NOD 1003 阶乘后面0的数量
- [51NOD] 1003 阶乘后面0的数量 [数学]
- 1003 阶乘后面0的数量 51NOD
- 51nod 1003 阶乘后面0的数量
- 51nod 1003 阶乘后面0的数量【数学】
- 51Nod 1003 阶乘后面0的数量
- Java多线程(二)
- java enum(枚举)使用详解 + 总结
- 导入csv到数据库,并且传递参数
- 一小时包教会 —— webpack 入门指南
- 按钮添加呼吸灯效果
- 51nod 1003 阶乘后面0的数量
- Qt将数字转为中文大写金额
- [UVa 12166] 修改天平(Equilibrium Mobile)
- Android百大框架排行榜
- Myeclipse安装Hibernate
- POJ1182 食物链 带权并查集
- chromium之webui
- ebay价格
- Logback日志系统配置攻略