C++求第N个丑数的值
来源:互联网 发布:mysql压缩版安装图解 编辑:程序博客网 时间:2024/05/16 08:40
题目:
我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第N个丑数。习惯上将1作为第一个丑数。
思路:
丑数都是前面已有丑数乘以2、3或5生成的。假设已有丑数已按增序排列,那么下一个丑数一定是已有丑数分别乘以2、3、5得到的数中大于当前最大丑数中的最小的一个。
#include<iostream>#include<algorithm>#include<vector> using namespace std;int GetUglyNumber_Seq(int index) { vector<int> ugly(index, -1); if (index <= 0) return 0; int idx2 = 0, idx3 = 0, idx5 = 0, i = 1; ugly[0] = 1; while (i<index) { int new2 = ugly[idx2] * 2; int new3 = ugly[idx3] * 3; int new5 = ugly[idx5] * 5; int tempVal = min(min(new2, new3), new5); if (tempVal == new2) idx2++; if (tempVal == new3) idx3++; if (tempVal == new5) idx5++; ugly[i] = tempVal; i++; } return ugly[index - 1];}int main(){ int n = 0; cin >> n; int ret = GetUglyNumber_Seq(n); printf("%d\n", ret); return 0;}
阅读全文
0 0
- C++求第N个丑数的值
- 求第n个丑数
- 求第n个丑数
- 递归-求第N项的值
- 求第n个数的值
- 求n!的位数以及求n!具体的值(C or C++)
- 裴波拉契数列 递归求第N的值
- 使用快排思想 求第n大的值
- 求第n个Fibonaccid的值 并取模
- 求n个数的第K小数
- 递归求fibonacci的第n项
- 求Fibonacci数列的第n项
- 第四周—求n的阶乘
- 求Fibonacci数列的第n项
- 求Fibonacci数量的第N项
- 求第n小的质数
- 求N!的值
- 剑指off-求第n个丑数
- netty源码分析(一)EventLoopGroup
- Algorithms(一)Two Sum
- 初学者如何查阅自然语言处理(NLP)领域学术资料
- XGBoost python调参指南
- 最长上升子序列
- C++求第N个丑数的值
- nginx-配置文件的引入
- 503. Next Greater Element II
- java基础-----StringBuffer 和 StringBuilder 区别
- U N I X进程的环境
- Linux部分常用命令(二)
- 三、Jenkins系列_插件安装及报错处理
- Python中的split()函数的用法
- Python学习之初始(一)