[算法]求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国标接入设备通过获取到实时经纬度信息,按照一定的间隔上报到…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
