博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
264. Ugly Number II
阅读量:5264 次
发布时间:2019-06-14

本文共 1114 字,大约阅读时间需要 3 分钟。

Write a program to find the n-th ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers.

Note that 1 is typically treated as an ugly number, and n does not exceed 1690.

 

查找第n个ugly number,ugly number的含义详见上一篇。

由于ugly number是一个质因数仅包含2、3、5的数,因此,若一个数是ugly number,它必然可以表示为(2^a)*(3^b)*(5^c),其中,a,b,c可取任意非负整数。用一个数组或容器从小到大依次记录第1到n个ugly number,输出第n个即可。

代码如下:

int nthUglyNumber(int n){	vector
uglyNumbers; uglyNumbers.push_back(1); int ugly1 = 2, ugly2 = 3, ugly3 = 5, ugly = 1; int idx1 = 0, idx2 = 0, idx3 = 0; while ((int)uglyNumbers.size() < n) { ugly1 = uglyNumbers[idx1] * 2; ugly2 = uglyNumbers[idx2] * 3; ugly3 = uglyNumbers[idx3] * 5; ugly = (ugly1 < ugly2) ? (ugly1 < ugly3 ? ugly1 : ugly3) : (ugly2 < ugly3 ? ugly2 : ugly3); uglyNumbers.push_back(ugly); if (ugly1 == ugly) idx1++; if (ugly2 == ugly) idx2++; if (ugly3 == ugly) idx3++; } return ugly;}

  

posted on
2018-03-19 00:20 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/big-potato/p/8598488.html

你可能感兴趣的文章
.net Core 图片验证码 基于SkiaSharp实现
查看>>
fish redux 个人理解
查看>>
java 笔记一些
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
BZOJ3811 玛里苟斯(线性基+概率期望)
查看>>
简单的异步函数async/await例子
查看>>
一个点击事件引发的案件
查看>>
Android.mk介绍
查看>>
octave基本操作
查看>>
排球计分程序重构(一)
查看>>
go 文件上传
查看>>
axure学习点
查看>>
javascript: 处理URL字符串
查看>>
MATLAB数值计算与数据分析(2)
查看>>
JUnit
查看>>
WPF文本框只允许输入数字[转]
查看>>
事务的四种隔离级别和七种传播行为
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
13. 用Roberts、Sobel、Prewitt和Laplace算子对一幅灰度图像进行边缘检测。观察异同。...
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>