[算法]求n!在m进制下末尾有多少个0
参考链接:求n!在m进制下末尾0的个数_.!零n,,m-CSDN博客
我们这里和参考链接不同
使用结构体去存储每个因数的信息
然后使用变量index作为索引,其最终值为因数的个数
具体原理:
例子1:求9!在10进制下的末尾的0的个数
思考1:在10进制下出现0,必须是质数2 与 5组合,所以统计2和5作为因数出现了多少次,取最小的数量就是答案
例子2:求10!在9进制下的末尾的0的个数
思考2:在9进制出现0,其必然是两个3组合起来才会在9进制出现0结尾,所以统计所有因子里面各自出现的次数(这里只有3)然后 整除以 对应因子在进制9里面出现的次数 取最小的那一个值 即是答案!
下面给出一个例题和题解
例题:Contest1035 - NewOJ 2022 Contest 7 - New Online Judge (ecustacm.cn)
题解:
#include<iostream>using namespace std;
#define debug(x) cout<<#x<<" : "<<x<<endl;
typedef long long int ll;const int maxLine=10010;
struct primeInfo {int nums;int counts;
};
void getPrime(int m);
void printPrimeArray(struct primeInfo arr[maxLine],int len);
int countDivision(int n,int p);struct primeInfo myPrime[maxLine];
// 记录数量和下标
int index=0;
int res=0x3f3f3f3f;
int main(){int n,m;
// cin>>n>>m;n=20;m=14; getPrime(m);
// printPrimeArray(myPrime,index);for(int i=0;i<index;i++){res=min(res,countDivision(n,myPrime[i].nums)/myPrime[i].counts);}cout<<res;return 0;
}
// 获取素数个数
void getPrime(int m){for(int i=2;i*i<=m;i++){// 统计当前因数的个数和具体数值 while(m%i==0){myPrime[index].nums=i;myPrime[index].counts++;m/=i;}if(myPrime[index].counts!=0) index++; } //如果是合数 那么会在之前统计完//如果是质数 那么本身这个质因数统计不到if (m>1) myPrime[index].nums=m,myPrime[index++].counts++;
}
// 打印查看
void printPrimeArray(struct primeInfo arr[maxLine],int len){for(int i=0;i<len;i++){cout<<i<<": "<<arr[i].nums<<" "<<arr[i].counts<<endl;}
}
int countDivision(int n,int p){// 只要不包含1这个参数就一定会结束循环
// cout<<"传入参数"<<n<<" "<<p<<endl;int counts=0;
// debug(counts);while(n>0){counts+=n/p;n/=p;}
// debug(counts);return counts;
}
中间用到了一点点判断因数范围的小技巧,你发现了吗?
相关文章:
[算法]求n!在m进制下末尾有多少个0
参考链接:求n!在m进制下末尾0的个数_.!零n,,m-CSDN博客 我们这里和参考链接不同 使用结构体去存储每个因数的信息 然后使用变量index作为索引,其最终值为因数的个数 具体原理: 例子1:求9!在10进制下的…...
mysql之用户管理、权限管理、密码管理
用户管理 创建用户create user 杨20.0.0.13 identified by 123; 用户重命名rename user 杨20.0.0.13 to yang20.0.0.13; 删除用户drop user 杨20.0.0.13; 权限管理 查看用户权限show grants for 杨20.0.0.13; 赋予用户权限grant all privileges on *.* to 杨localhost id…...
图情档核心期刊 | 北大核心、CSSCI、CSCD
中文核心期刊要目总览(A Guide to the Core Journal of China, 简称北大核心): 主办单位:北京大学图书馆更新频率:北大核心在2008年之前每4年更新研究和编制出版一次,2008年之后,改为…...
Mac上具好用的屏幕录像工具(Omi录屏专家)Screen Recorder By Omi Mac 下载安装详细教程
Omi 录屏专家 是 Mac 上的一款出色的录音工具,它让您能够在Mac电脑上轻松录制和保存高质量音频。这款应用拥有简单直观的操作界面,无论我们水平如何,都可以轻松捕捉录制卓越的音质和录像视频。 该版本的 Omi 安装后可以直接支持最高 4K 60帧…...
牛客网刷题-(8)
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
oracle 重启步骤及踩坑经验
oracle 重启步骤及踩坑经验 标准重启步骤 切换到oracle用户 su - oracle关闭监听 lsnrctl stop杀掉oracle有关进程 ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {print $2}|xargs kill -9#查询pid ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {p…...
处理mysql数据量大查询缓慢问题(最少百万才有差别)
我建了两个表,一个售后单表,一个售后商品明细表,都是五十个字段。 select * FROM (select id, as_id, as_date, outer_as_id, so_id, type, created, modified, status, status_name, shop_status, shop_status_name, remark, question_type,…...
element-plus走马灯不显示
问题描述 依赖正确,代码用法正确,但是element-plu走马灯就是不显示!! <div class"content"><el-carousel height"150px" width"200px"><el-carousel-item v-for"item in 4&qu…...
【精】UML及软件管理工具汇总
目录 1 老七工具(规划质量) 1.1 因果图(鱼骨图、石川图) 1.2 控制图 1.3 流程图:也称过程图 1.4 核查表:又称计数表 1.5 直方图 1.6 帕累托图 1.7 散点图…...
【uniapp+vue3】scroll-view实现纵向自动滚动及swiper实现纵向自动滚动
scroll-view本身不支持自动滚动,通过scroll-top属性控制滚动,但是不可以循环滚动 <scroll-view class"notice-bar" scroll-y"true" ref"scrollViewRef" :scroll-top"data.scrollViewTop"scroll-with-animati…...
this.refs[‘tagInput‘].refs.input.focus()和this.$refs[‘tagInput‘].focus()区别
this.$refs[tagInput].$refs.input.focus()和this.$refs[tagInput].focus()两者之间的选择取决于你的组件结构和如何访问DOM元素。 1.this.$refs[tagInput].$refs.input.focus(): 2.这种语法假设你的this.$refs[tagInput]是一个组件实例,并且这个组件实例有一个名为…...
电脑硬件坏了,如何维修?
在电子设备日益普及的今天,电脑已成为很多人生活和工作中不可或缺的工具,然而在使用过程中很容易遇见电脑故障之类的问题,这些问题十有八九来自硬件,那么针对电脑硬件问题,该如何维修? 一般来说,…...
elementplus日期时间选择器组件显示很窄
问题描述 似乎是elementplus原生组件的宽度是和父组件相关的 只要父组件很窄就会让弹窗也很窄,但其实两者的宽度不必有这种限制 解决思路 打开控制条查看元素位置以及css样式的class名 发现类名为el-picker-panel__body 尝试重构 css内写样式 .el-picker-pane…...
第三方软件测评选择远程测试好还是现场测试好?
如今许多软件企业在软件开发过程完成之后,会将软件测试工作交由第三方软件测评机构来进行,那么做第三方软件测试时,远程测试和现场测试哪个更好呢?我想这是许多软件企业都十分关注的问题,今天卓码软件测评小编将对以上问题作出简…...
HTTPS协议:保障网络安全的加密通信协议
在当今数字化时代,网络安全问题备受关注。为了保护用户的隐私和数据安全,HTTPS协议应运而生。本文将介绍HTTPS协议的定义、工作原理以及其在网络通信中的重要性。 一、HTTPS协议的定义 HTTPS(Hypertext Transfer Protocol Secure)…...
C++设计模式_21_Iterator 迭代器(理解;面向对象的迭代器已过时;C++中使用泛型编程的方式实现)
Iterator 迭代器也是属于“数据结构”模式。GoF中面向对象的迭代器已经过时,C中目前使用泛型编程的方式实现,其他语言还在使用面向对象的迭代器。 文章目录 1. 动机(Motivation)2. 模式定义3. Iterator 迭代器代码分析4. 面向对象的迭代器与泛型编程实现…...
有一个 3*4 的矩阵,找出其中值最大的元素,及其行列号
1解题思路: 首先学会输入二维数组;然后知道如何比较求最大值;最后就是格式问题; 2代码: #include<stdio.h> int main() {int a[3][4];int i,j,max,row,line;for(i0;i<3;i){printf("请输入二维数组\n&…...
磁盘的命令
目录 1- 磁盘空间命令1.1 df1.2 du只想查看目录的权限 加 -d 参数 1- 磁盘空间命令 1.1 df 全称 disk free 快速获取磁盘被占用了多少空间, 目前还剩下所少空间 常用命令df -hdf 是从总体上统计系统各磁盘的占用情况,不能统计具体的文件夹或文件的大小 1.2 du 全称 disk u…...
一张图讲清楚业务稳定性要如何做:SRE体系化稳定性方案
概述:作为一个SRE、运维工程师,当我们在治理系统稳定性时,方法有很多,但往往无从下手。本文以一张逻辑图的形式,为读者提供治理稳定性的体系化思路。 先上图: 1、治理目标 我们做稳定性的目标,…...
安卓端GB28181设备接入模块如何实现实时位置订阅(MobilePosition)
技术背景 实时位置(MobilePosition)订阅和上报,对GB28281设备接入终端尤其重要,如移动单兵设备、执法记录仪、智能安全帽、车载终端等,Android国标接入设备通过获取到实时经纬度信息,按照一定的间隔上报到…...
5步实用指南:永久解锁Cursor Pro高级功能的完整解决方案
5步实用指南:永久解锁Cursor Pro高级功能的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...
网站导航设计全攻略:4种常见布局方式,教你打造极致用户体验
在浏览网站时,你是否曾因找不到入口而感到焦躁?优秀的导航设计,就像一座灯塔,能在瞬间为用户指明方向。它不仅是网站的骨架,决定了信息的流转效率,更是用户体验的基石。一个逻辑清晰的导航系统,…...
从硬件电路深入理解计算机中断机制:8088到现代中断控制器
1. 项目概述:从硬件视角重新认识中断在计算机的世界里,中断(Interrupt)是一个既基础又至关重要的概念。它就像是程序世界里的“紧急呼叫”系统,允许CPU这个“大管家”在埋头处理日常事务(执行主程序&#x…...
网盘直链解析助手:一站式解决多平台文件下载难题
网盘直链解析助手:一站式解决多平台文件下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...
如何将B站缓存视频永久保存?m4s-converter完整使用指南
如何将B站缓存视频永久保存?m4s-converter完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是不是也遇到过这样的情况&…...
信步SV3b-19016EP嵌入式主板深度解析:从选型到实战应用
1. 项目概述:为什么是SV3b-19016EP?在嵌入式系统开发这个行当里,选型永远是项目成败的第一步。最近几年,随着边缘计算、工业自动化、智能零售这些场景的爆发,大家对嵌入式主板的性能、接口丰富度和可靠性要求越来越高。…...
告别黑盒调试:手把手教你用ControlDesk的Bus Navigator虚拟通道抓取CAN信号
告别黑盒调试:手把手教你用ControlDesk的Bus Navigator虚拟通道抓取CAN信号 在汽车电子开发中,硬件在环(HIL)测试往往面临一个典型困境:当物理ECU或CAN卡尚未就绪时,如何提前开展总线信号验证?传…...
从OBD到功能安全:聊聊Autosar Dem模块里故障数据的‘生老病死’与内存管理策略
从OBD到功能安全:Autosar Dem模块中故障数据的生命周期与内存博弈 当一辆现代汽车在道路上飞驰时,它的电子控制单元(ECU)内部正上演着无数微观的"生存游戏"。在Autosar Dem模块的内存空间中,每一个故障数据都如同有生命的个体&…...
RedisDesktopManager Windows版:5分钟掌握免费Redis数据库可视化工具
RedisDesktopManager Windows版:5分钟掌握免费Redis数据库可视化工具 【免费下载链接】RedisDesktopManager-Windows RedisDesktopManager Windows版本 项目地址: https://gitcode.com/gh_mirrors/re/RedisDesktopManager-Windows RedisDesktopManager Windo…...
Labelme版本不兼容报错?手把手教你修改源码和JSON文件(附3.18.0与4.5.6对比)
Labelme版本兼容性实战:从源码修改到JSON批量处理的完整指南 当你正专注于一个重要的数据标注项目,突然遭遇"Error opening file lineColor"的红色报错框,整个团队的标注进度被迫停滞——这种场景对于使用Labelme进行图像标注的开发…...
