计蒜客 难题题库 217 阶乘
2015-08-10 10:14
246 查看
70次
14.2%
1000ms
65536K
n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少
输入格式:
第一行包括两个数n,k
输出格式:
如果n!不止k位,则输出最后k位,如果不足k位,则将剩下的全部输出
7!为5040,去除末尾的0为504,最后两位为04 100%满足1< =n< =20 1< =k< =9
输出:
14.2%
1000ms
65536K
n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少
输入格式:
第一行包括两个数n,k
输出格式:
如果n!不止k位,则输出最后k位,如果不足k位,则将剩下的全部输出
7!为5040,去除末尾的0为504,最后两位为04 100%满足1< =n< =20 1< =k< =9
样例1
输入:7 2
输出:
04
#include<iostream> using namespace std; int main(){ long long mod, res, n, k; cin >> n >> k; mod = 1; while(k--){ mod *= 10; } const long long cut = 1000000000000000LL; res = 1; for(int i = 1; i <= n; ++i){ res *= i; while(res % 10 == 0){ res /= 10; } res %= cut; } if(res < mod){ // 如果n!不止k位,则输出最后k位,如果不足k位,则将剩下的全部输出 cout << res << endl; return 0; } res %= mod; mod /= 10; while(mod){ cout << res/mod; res %= mod; mod /= 10; } cout << endl; }
相关文章推荐
- 早找癌准吗?慈铭体检“Hsp90α(早找癌)”肿瘤筛查的准确度高吗
- Android利用Intent与其他应用交互
- 递归
- FineReport集成到AWS系统中的方案
- 4.1 标准库--正则表达式
- 版本控制入门插图教程
- Apache服务器 403
- 20大数据可视化工具及资料
- 日经春秋 20150810
- 计蒜客 难题题库 216 冗余关系
- FineReport集成到AWS系统中的方案
- 【Unity手册】着色器参考
- poj1182食物链 (并查集)
- 工作小结
- Bootstrap学习--导航栏
- 发布一则相册下载器
- php 取图片正则表达式
- 处理JSON格式的数据
- HDU 2122 Ice_cream’s world III(最小生成树)
- android停止应用不能接收广播