当前位置: 首页 > news >正文

2019年[海淀区赛 第2题] 阶乘

题目描述


n的阶乘定义为n!=n*(n -1)* (n - 2)* ...* 1。n的双阶乘定义为n!!=n*(n -2)* (n -4)* ...* 2或n!!=n(n - 2)*(n - 4)* ...* 1取决于n的奇偶性,但是阶乘的增长速度太快了,所以我们现在只想知道n!和n!!末尾的的个数

输入格式

一个正整数n (n <= 10^{7})


输出格式


两个整数分别为n!和n!!末尾0的个数

样例输入#1

10

样例输出#1

2 1

样例输入#2

5

样例输出#2

1 0

参考代码

#include <iostream>
#include <cstdio>
#define ll long long
using namespace std;int main()
{freopen("factorial.in", "r", stdin); //此处为海淀区赛指定文件名freopen("factorial.out", "w", stdout);//考场代码,必须加文件输入输出ll n, cnt_5, cnt_2;scanf("%lld", &n);cnt_5 = cnt_2 = 0;for(ll i = 1; i <= n; i++){ll tmp = i;while(tmp % 5 == 0){cnt_5++;tmp /= 5;}tmp = i;while(tmp % 2 == 0){cnt_2++;tmp /= 2;}}printf("%lld ", min(cnt_2, cnt_5));cnt_5 = cnt_2 = 0;if(n % 2 != 0){for(ll i = n; i >= 1; i -= 2){ll tmp = i;while(tmp % 5 == 0){cnt_5++;tmp /= 5;}tmp = i;while(tmp % 2 == 0){cnt_2++;tmp /= 2;}}}else{for(ll i = n; i >= 2; i -= 2){ll tmp = i;while(tmp % 5 == 0){cnt_5++;tmp /= 5;}tmp = i;while(tmp % 2 == 0){cnt_2++;tmp /= 2;}}}printf("%lld", min(cnt_5, cnt_2));return 0;
}
http://www.lryc.cn/news/186195.html

相关文章:

  • CMM—软件企业走向世界的通行证
  • 基于FPGA的图像形态学腐蚀算法实现,包括tb测试文件和MATLAB辅助验证
  • 华为云云耀云服务器L实例评测|RabbitMQ的Docker版本安装 + 延迟插件安装 QQ邮箱和阿里云短信验证码的主题模式发送
  • 解决Linux安装AppImage文件chrome-sandbox出错问题
  • Axios、SASS学习笔记
  • 开发工作中常用到的免费API分享
  • 外汇天眼:三大方法提高容错率——成功投资者的秘密策略!
  • 设计模式-状态模式
  • 支持多种格式照片处理软件Lightroom Classic 2022 mac中文功能特点
  • UML简介
  • 【PostgreSQL内核学习(十七)—— (AutoAnalyze)】
  • C++中指向成员的指针运算符(.* 和 ->*)用法说明
  • ASUS华硕ZenBook灵耀X逍遥UXF3000E_UX363EA原装出厂预装Win11系统工厂模式安装包
  • 【数据结构】栈和队列-- OJ
  • 访问Apache Tomcat的管理页面
  • 企业组织内如何避免山头文化?
  • 【c#】线程Monitor.Wait和Monitor.Pulse使用
  • GitLab平台安装中经典安装语句含义解析
  • 湘潭大学 2023年下学期《C语言》作业0x03-循环1 XTU OJ 1094,1095,1096,1112,1113
  • 【Linux系统满足产品实时性需求】
  • 不用休眠的 Kotlin 并发:深入对比 delay() 和 sleep()
  • 在Ubuntu中批量创建用户
  • 汽车冲压车间的RFID技术设计解决方案
  • TCP 和UDP通信流程
  • Swift SwiftUI CoreData 过滤数据 1
  • 【uniapp】subnvue组件数据更新视图未更新问题
  • Unity编辑器拓展-Odin
  • 小红书婴童产业探索,解析消费者需求!
  • 离线安装mysql客户端
  • Docker 数据管理