返回信息流求第N个丑数,丑数是分解因子只有2,3,5的数
int isMin (int a, int b) {
if (a >= b)
a = b;
return a;
}
int nthUglyNumber(int n) {
int *l = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
l[i] = 0;
l[0] = 1;
int p2, p3, p5 = 0;
for(int i = 1; i < n; i++) {
int a = l[p2] * 2;
int b = l[p3] * 3;
int c = l[p5] * 5;
int min = isMin(a, isMin(b, c));
l[i] = min;
if(a == min)
p2++;
if(b == min)
p3++;
if(c == min)
p5++;
}
return l[n - 1];
}
我的解法,真心求指教哪里错了
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #93100同步于 2017/4/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
【问题】leedcode264. Ugly Number II求教
bluminFlower
2017/4/24镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 bluminFlower 的大作中提到: 】
: 求第N个丑数,丑数是分解因子只有2,3,5的数
: int isMin (int a, int b) {
: if (a >= b)
: ...................
int p2, p3, p5 = 0;这行代码谁给你教的
哈哈,多谢指教
【 在 Mylittlenum 的大作中提到: 】
: P2,p3,p5初始化为0不需要一个个赋值么,我感觉应该是哪里细节错了吧,
:
发自「贵邮」
哈哈,印象中大一的书上教的
改过之后ac了,多谢指点
【 在 dxy1 的大作中提到: 】
:
: 【 在 bluminFlower 的大作中提到: 】
: : 求第N个丑数,丑数是分解因子只有2,3,5的数
: : int isMin (int a, int b) {
: : if
: .........
发自「贵邮」
【 在 yizisad 的大作中提到: 】
: 哈哈,印象中大一的书上教的
: 改过之后ac了,多谢指点
:
: ...................
书上教的应该是int a, b, c;
a = b = c = 0;
声明的时候不早这样子的
只有我想吐槽为啥有malloc没有free嘛......不要随便malloc....你可以这么写:
const int N = n;
int l[N+1];
但是你为啥不用C++呢.......