丑数

原创 2016年08月29日 12:35:57
#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
vector<long long int>  GetUglyNumber_Solution(int index) {
int t, i;
vector<long long int> ver;
vector<long long int> ver1;
if (index <7)
{
for (int i = 0; i <= index; i++)

{
//cout << i<<" ";
ver.push_back(i);
}

}
//cout << index;

if (index >=7)
{
for (int i = 0; i <= 6; i++)


{
//cout << i<<" ";
ver.push_back(i);
}
}

for (i = 7; i <= index; ++i)
{
t = i;
while (t%3==0)
{
t = t / 3;

if (t==3||t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}



   
for (i = 7; i <= index; ++i)
{
t = i;
while (t % 2 == 0)
{
t = t / 2;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}
for (i = 7; i <= index; ++i)
{
t = i;
while (t %5 == 0)

{
t = t / 5;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}


for (i = 7; i <= index; ++i)
{
t = i;
while (t % 10 == 0)
{
t = t / 10;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}
}

for (i = 7; i <= index; ++i)
{
t = i;
while (t % 6 == 0)


{
t = t / 6;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}

for (i = 7; i <= index; ++i)
{
t = i;
while (t %15 == 0)
{
t = t / 15;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}


for (i = 7; i <= index; ++i)
{
t = i;
while (t % 30 == 0)

{
t = t / 30;


if (t == 3 || t == 2 || t == 5)
{
//cout << i << " ";
ver.push_back(i);
break;
}
}


}
cout << endl;
for (i = 1; i < ver.size(); i++)//直接从1开始
{
int n = 0;
for (int j = 0; j<i; j++)


if (ver[i] != ver[j])
{
n++;
if (n == i)
{
//cout << ver[i]<<" ";
ver1.push_back(ver[i]);
//n = 0;
int p = n;
}
}
}

cout << endl;
sort(ver1.begin(), ver1.end()); //从大到小排序

/*int  j, temp;  //c语言方法实现从大到小排序
for (i = 0; i<ver1.size(); i++)
for (j = i; j<ver1.size(); j++)
if (ver1[i]>ver1[j])
{
temp = ver1[i];
ver1[i] = ver1[j];
ver1[j] = temp;
}
*/


return ver1;


}

int main()
{
//int* a =GetUglyNumber_Solution;
int a[1500];
vector<long long int> v(GetUglyNumber_Solution(1500));

for (int i = 0; i < v.size(); i++)//直接从1开始
{
cout<<v[i]<<" ";
//cout << GetUglyNumber_Solution(9)[i];//虽然正确。
//但直接输出换很多空行
//printf("%d", a[1]) ;


}
//OutputVector(GetUglyNumber_Solution(72);
cout << endl;
return 0;
}

丑数问题及变种小结

丑数问题及变种小结丑数问题及变种小结 声明 判断丑数 找出第k大丑数 丑数推论 1 解法1OnlognOnlog n时间复杂度 2 解法2OnOn时间复杂度 找出第k大自定义丑数 1 解法1Onlog...
  • J_Dark
  • J_Dark
  • 2017年06月04日 14:48
  • 194

LintCode笔记(8)——丑数II

Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ugly ...
  • lhanchao
  • lhanchao
  • 2016年08月01日 08:28
  • 1694

面试题之丑数的C++实现求解(孤陋寡闻了,才知道丑数这么high的东东)

问题描述:      我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的...
  • coder_xia
  • coder_xia
  • 2011年08月22日 13:42
  • 21096

C\C++编程题之寻找丑数

丑数的定义:丑数是指那些因子只含2,3,5的数,为方便起见,1也视为丑数
  • yang_teng_
  • yang_teng_
  • 2015年08月19日 17:17
  • 431

丑数 简单的优先队列和set

Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8...
  • moon548834
  • moon548834
  • 2017年02月27日 19:15
  • 132

【剑指offer】丑数

思路:最简单的方法就是先通过将一个数不断除以2,3,5来判定该数是不是丑数,而后在从1开始,依次往后判断每个数是不是丑数,并记下丑数的个数,这样当计算的个数为给定值时,便是需要求的第n个丑数,这种方法...
  • mmc_maodun
  • mmc_maodun
  • 2014年05月30日 08:50
  • 4767

两种方法求丑数

我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 方法1 : 暴力破解,逐个判断 代码: #include #incl...
  • buyingfei888
  • buyingfei888
  • 2014年08月04日 21:06
  • 990

lintcode 4.丑数 II(优先队列)

设计一个算法,找出只含素因子2,3,5 的第 n 大的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 看到题的第一个想法一直向下枚举 直到找到第N个数 我的...
  • dlnumk
  • dlnumk
  • 2017年06月06日 20:46
  • 248

剑指offer系列之三十二:寻找丑数

题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。因为丑数只有2...
  • u011116672
  • u011116672
  • 2015年12月11日 15:55
  • 705

剑指Offer面试题34(java版):丑数

题目:丑数  * 我们把只包含因子2,3,5的数称为丑数(Ugly Number).  * 求按从小到大的顺序的第1500个丑数。  * 例如6,8都是丑数,但14不是,因为它含有因子7.习惯上...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月09日 15:44
  • 3256
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:丑数
举报原因:
原因补充:

(最多只允许输入30个字)