丑数 你的名字 2022-05-18 10:55 223阅读 0赞 求第1500个丑数。丑数是不能被2.3.5之外的其他素数整除的数,把丑数从小到大排起来,然后打印第1500个 先写一个典例,我写的, //这是我写的,运行了大概15秒才出来结果,一开始以为由bug //debug了半小时 点了运行去了厕所 回来心都碎了 没有bug 只是算法问题 #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #include<queue> #include<set> using namespace std; typedef long long ll; bool chou(signed long long x){ while(x%2==0) {x=x/2;} while(x%3==0) { x=x/3;} while(x%5==0) {x= x/5;} if(x==1) return true; else return false; } int main() { priority_queue<ll> s; set<ll> s2; int num=1; s.push(1); s2.insert(1); signed long long i ; for(i=1;;i++){ if(chou(i)&&!s2.count(i)) { ++num; s2.insert(i); s.push(i); } if(num==1500){ cout<<i<<endl; break; } } return 0; } 判断一个数是否为丑数的办法是,将这个数与2除,除到没有余数为止,再与3除,再与5除, 得到最后的数x,如果x=1,则为丑数,否则不为,本题计算量大,这个程序大概要15秒才能得出结果,明显不行 同时,由丑数的定义知,丑数是2,3,5的乘积,所以换一种思路 #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #include<queue> #include<set> using namespace std; typedef long long ll; const int www[3]={2,3,5}; typedef signed long long ll; int main() { priority_queue<ll.vector<ll>,greater<ll> > pp;//得出一个从小到大的优先队列 set<ll> s;//主要是得到一个判断不重复的方法 ll x x1; pp.push(1); s.insert(1); for(int i=1;;i++){ x=pp.top(); pp.pop(); if(i==1500){ //为什么是i=1500呢 推一下下面的for循环 cout<<x<<endl; break; } for(int j=0;j<3;j++){ x1=x*www[j]; if(!s.count(x1)){ s.insert(x1); pp.push(x1); } } } return 0; }
相关 丑数 一、题目大意 只包含因子2、3、5的数叫丑数,习惯上把1也看做丑数,求第1500个丑数。 二、分析 (1)常规做法,可对每个正整数依次遍历,直到找到第1500个丑数为止。 小咪咪/ 2023年11月20日 07:29/ 0 赞/ 151 阅读
相关 丑数 ![在这里插入图片描述][20200302095046787.png] include<stdio.h> int main() { int 朱雀/ 2023年07月10日 11:19/ 0 赞/ 169 阅读
相关 丑数 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个 矫情吗;*/ 2023年02月18日 08:16/ 0 赞/ 40 阅读
相关 丑数 \\题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到 r囧r小猫/ 2022年10月27日 13:48/ 0 赞/ 212 阅读
相关 丑数求解以及丑数的优化 丑数: 丑数是指因子只有2,3,5的数 比如 6 因子2,3 比如 15 因子3,5 另外特别的,规定1为丑数 求第K个丑数? 最近在刷剑指offer的 阳光穿透心脏的1/2处/ 2022年06月09日 09:55/ 0 赞/ 265 阅读
相关 丑数 把只包含因子2、3和5的数称作丑数,例如6,8都是丑数,但14不是,因为它包含因子7,习惯上我们把1当作第一个丑数,求按从小到大的顺序的第N个丑数。 输入描述:整数N 小咪咪/ 2022年06月08日 08:52/ 0 赞/ 256 阅读
相关 丑数 求第1500个丑数。丑数是不能被2.3.5之外的其他素数整除的数,把丑数从小到大排起来,然后打印第1500个 先写一个典例,我写的, //这是我写的,运行了大概15 你的名字/ 2022年05月18日 10:55/ 0 赞/ 224 阅读
相关 丑数 时间限制:1秒 空间限制:32768K 热度指数:223966 本题知识点: 数组 算法知识视频讲解 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly 本是古典 何须时尚/ 2022年03月09日 10:50/ 0 赞/ 305 阅读
相关 丑数 列表res按序存储丑数 res\[0\] = 1, 下一个丑数产生规则: 1.找出res所有数\2 中第一个 大于 res \[-1\] 的数:res\[n2\] 2 迷南。/ 2022年01月30日 07:43/ 0 赞/ 271 阅读
相关 丑数 丑数就是只包含质因数 2, 3, 5 的正整数。 1.判断丑数 2.找到第n个丑数 (代码很容易看懂) public class UglyNum { 梦里梦外;/ 2021年09月26日 23:24/ 0 赞/ 368 阅读
还没有评论,来说两句吧...