丑数

算法学习笔记之寻找第1500个丑数 最近在阅读《算法新解》(刘新宇 著),书写得很不错,推荐程序们阅读。前言中有个例子,是寻找第1500个丑数,所谓丑数是指仅含2、3、5这三个素因子的自然数。作者在书中给出了伪代码。作为练习,记录下自己的代码。 一、暴力查找法 算法思路 :迭代每个自然数,逐一判断是否是丑数,并观察累计计数是否达到1500,如果是,则成功找到了第1500个丑数 #include #include #incl 阅读详情

题目:把只包含因子2、3和5的数称作丑数 求按从小到大的顺序的第1500个丑数

(第一个丑数为1)

从1 开始遍历 每一个数 若n因式分解只包含2、3、5这三个因子,即使n%2 n%3 n%5最后余数为0 则说明n为丑数

这样做会导致1500个丑数之前的每个数都需要遍历

---------------------------------

分析:第一个丑数为1 接着为2,3,4,5,6,。。。。

可以将丑数写入一个数组 丑数按照大小进行排序 

丑数的因式分解后 因子只有2 3 5  ,这可以看做是数组中的数乘以2 3 5  。。

假设我们从1 开始 

第一个丑数为1 ,那么它的2/3/5倍数为2 3 5 最小的为2  2加入到数组 数组中元素为{1 2}

接着对数组中元素乘以2 3 5 最小的为3(2已经出现了) 3 加入数组 数组元素为{1 2 3}

接着对数值中元素乘以2 3 5 最小的还未出现的数为4 加入数组 数组元素为{1 2 3 4}


。。。。。。。


我们可以得出 下一个要加入数组的元素是已经出现在数组中的元素的2 3 5倍数 且还未出现的最小元素 


#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
	int *A = new int[2000];
	memset(A, 0, 2000);
	int a = 0;
	int b = 0;
	int c = 0;
	A[0] = 1;
	int temp = 1;
	for (int i = 1;i<1500;i++)
	{
		temp =min( min(2 * A[a], 3 * A[b]), 5 * A[c]);
		A[i] = temp;
		if (temp % 2 == 0)
			a++;
		if (temp % 3 == 0)
			b++;
		if (temp % 5 == 0)
			c++;
	}
	cout << A[1499] << endl;
	delete[]A;
}


求出第1500个的丑数是多少 丑数是指那些因子只含2,3,5的数,为方便起见,1也视为丑数,故1,2,3,4,5,6,8,9,10,12,15是最前面的丑数。求出第1500个丑数是多少! 立即下载

相关推荐

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

经典算法题——寻找第1500个丑数

前言:         相信很多朋友们都对“丑数”有所了解,当然肯定也有人觉得这个名字好奇怪,咦,什么样的数才算是丑数咧?实际上丑数就是只包括2,3,5这三种因子的数,另外我们一般把“1”当作第一个丑数。         知道了丑数,我们很容易发现,丑数有点像质数一样,总是没有最大的。不过丑数的寻找可比质数的寻找简单得多啦,那让我们来试一试找出从小到大排序的第1500个丑数吧。 解法

江南晚来客的专栏 4246

【算法实战】Keystone变换:从原理到MATLAB实现的距离走动校正

本文深入解析Keystone变换在雷达信号处理中的距离走动校正应用,从原理到MATLAB实现全面讲解。通过三种实现方法(DFT+IFFT、Sinc插值、Chirp-Z变换)的对比分析,结合实战案例展示如何有效解决高速目标导致的距离单元跨越问题,提升多普勒频谱聚焦质量。

weixin_29055699的博客 292

找到第1500个丑数

把只包含质因子2、3和5的数称作丑数。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。 暴力的一点的方法, 可以从1开始遍历, 依次判断是否是丑数, 如果是丑数, 计数器+1, 当计数器加到1500的时候, 这个数字就是丑数了. - (void)viewDidLoad { [super viewDidLoad]; [self findUglyNum]; } // 找到丑数 - (void)

gcs的博客 503

YOLOv8剪枝实战:基于torch_pruning的模型优化与性能提升指南

本文详细介绍了如何使用torch_pruning工具对YOLOv8模型进行结构化剪枝,以实现模型轻量化与性能提升。通过实战步骤解析,包括环境搭建、依赖图分析、迭代剪枝与微调策略,帮助开发者有效减少模型参数量和计算量,提升在边缘设备上的推理速度,同时保持检测(detect)与分割(segment)任务的精度。

water的专栏 1122

智慧杯 考试必备

2019.4. 强密码 描述 我们称一个密码是强密码,当且仅当它满足以下所有条件: 由 8 − 16 个字符组成 至少包含一个大写字母 (A-Z) 至少包含一个小写字母 (a-z) 至少包含一个数字 (0-9) 至少包含一个特殊符号 (! @ #$ % & * _ +) 娇娇发现她现在的密码好像不是强密码,请你帮她计算一下最少添加几个 字符可以变成强密码? 输入 输入仅一行,一个字符串,表示娇娇当前的密码 输出 输出一个数表示答案 如果不需要添加任何字符就已.

Fairy1208的博客 2861

Ugly Numbers

题意 丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来,结果如下: 1,2,3,4,5,6,8,9,10,12,15…… 求第1500个丑数 输入 没有输入 输出 The 1500’th ugly number is . 这道题就是一道思维题,找不到方法就很容易超时,我就是这样过来的。所以,求丑数是有方法的,根据题意,我们可以知道,丑数就是2、3、5为质因子的数,所以,我们就...

weixin_44017102的博客 239

SAP物料分类账(ML)避坑指南:激活顺序错了怎么办?从CKMSTART到差异分摊的完整流程

本文详细解析SAP物料分类账(ML)的正确激活顺序与配置流程,帮助用户避免常见陷阱如'LKW无科目'、'在制品重估失败'等问题。从CKMSTART到差异分摊的完整流程,涵盖关键配置节点、典型报错分析与应急处理方案,确保产品成本控制(CO-PC)模块的顺利运行。

weixin_42524708的博客 258

python之丑数

一:丑数的概念 丑数:只能被2,3,5整除的数。需要特别注意:1也是丑数。 二:典型例题 1.判断丑数,代码如下: #判断丑数 def uglyNum(n): while n%2==0: n=n/2 while n%3==0: n=n/3 while n%5==0: n=n/5 if n==1: ...

qq_39579290的博客 6553

Spring Boot 3.5.4 + LangChain4j实战:用Milvus搭建企业级RAG问答系统(附阿里百炼API配置)

本文详细介绍了如何利用Spring Boot 3.5.4、LangChain4j与Milvus构建企业级RAG问答系统。内容涵盖从架构设计、阿里百炼API安全配置、Milvus部署优化,到RAG检索、会话管理等核心实现,并提供了生产级API设计、监控集成及性能优化等实战经验,旨在帮助开发者打造高可用、可维护的Java AI应用。

weixin_29054399的博客 610

DevExpress学习之GridControl导入导出至EXCEL

导出: private void EXCELout_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "导出Excel"; saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";

I Can -Jiang 2754

丑数:求第n个丑数

我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如,6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数。 求按从小到大顺序的第1500个丑数? 方法一: 根据丑数的定义,我们想到如果一个数能被2整除,就连续除于2;如果能被3整除,就连续除于3;如果能被5整除,就连续除于5。如果最后得到的是1,那么这个数就是丑数;否则不是。 所以我们可以写出下面的...

qq_43824618的博客 1678

雨雾天YOLOv8检测拉胯?暗通道去雾+上下文注意力双优化,mAP从58%飙到79%,暴雨也能看清车牌

室外交通监控:高速、省道的雨雾天检测,重点解决小车、货车漏检;车载ADAS系统:雨天行车时的前方车辆、行人识别,需实时性(<40ms);隧道出入口:明暗交界+雾天的复杂场景,暗通道能平衡亮度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1380

Leetcode之丑数系列

263. 编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数2, 3, 5的正整数。 示例 1: 输入: 6 输出: true 解释: 6 = 2 ×3 示例 2: 输入: 8 输出: true 解释: 8 = 2 × 2 ×2 示例3: 输入: 14 输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数7 说明: 1是丑数。 输...

Rain 1831

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

丑数 找出第n小的丑数

题目 设计一个算法,找出只含素因子2,3,5 的第 n 小的数(丑数)。 分析 丑数判定是:首先除2,直到不能整除为止,然后除5到不能整除为止,然后除3直到不能整除为止。最终判断剩余的数字是否为1,如果是1则为丑数,否则不是丑数。 方法1,从1开始递增循环,通过丑数判定,找到第n大的丑数。显然,这种方法的时间复杂度很高。O(n)&gt;&gt;O(nlogn)O(n) &am...

李的博客 519

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

丑数——js

丑数 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 主要在于理解丑数的概念,只包含因子2、3和5的数称作丑数,那么我们可以先把因子2、3和5分离出来,那么剩下的就是其他因子,看是否为1,为1的话说明没有其他因子,那就为丑数。不是1的话说明有其他因子,那么就...

qq_40608516的博客 735

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

丑数java_Java 实现丑数

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。代码解法一所谓一个数m是另一个数n的因子,是指n能被m整除,也就是说n%m==0.public static int[] findUglyNumbers(int n) {if (n <= 0) {return nul...

weixin_29473141的博客 1123

python 丑数

''' 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。 例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 跟跳台阶的问题很相似,如果想要获得第N个丑数,就必须要一直计算到N个 ''' ''' 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。 例如6、8都是丑数,但14不...

WYXHAHAHA123的博客 1530

丑数 python

题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路: 对于已知的丑数序列,后面的丑数一定是已知序列中的数字乘以2/3/5得到的。对当前序列中的数字乘2/3/5得到的数字中最小的数字才能放入序列。 现在已知序列为[1],只有一个元素1,对该元素乘2/3/...

DoubleYang的博客 1103

LeetCode 超级丑数

编写一段程序来查找第 n 个超级丑数。 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。 示例: 输入: n = 12, primes = [2,7,13,19] 输出: 32 解释: 给定长度为 4 的质数列表 primes = [2,7,13,19],前 12 个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32] 。 说明: 1 ...

hestyle的博客 801

python判断丑数_丑数问题及变种小结

丑数问题及变种小结声明1 判断丑数因子只包含2,3,5的数称为丑数(Ugly Number),习惯上把1当作第一个丑数面试lintcode 517 ugly numbersegmentfault剑指offer 面试题34 丑数数组解法:参考剑指offer,将待判断目标依次连续整除2,3,5,若是最后获得1,证实该数为丑数;优化/*** 依次整除2,3,5判断(2,3,5顺序判断时间最优)* htt...

weixin_39523529的博客 650

第n个丑数

题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 分析基础:根据丑数的定义,我们可以知道丑数可以由另外一个丑数乘以2,3或者5得到。因此我们可以创建一个数组,里面的数字是排好序的丑数,每一个丑数都是前面的丑数乘以2,3或者5得到的。 参考:[编程题]...

nsjlive的博客 422
上一篇: 用qsort对字符串数组排序需要注意的几个问题
下一篇: 第一个只出现一次的字符
Fivesplus
博客等级 码龄12年 1粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值