鱼C论坛

 找回密码
 立即注册
查看: 2245|回复: 1

[技术交流] 263_丑数

[复制链接]
发表于 2019-7-1 14:49:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例 1:
输入: 6
输出: true
解释: 6 = 2 × 3
示例 2:
输入: 8
输出: true
解释: 8 = 2 × 2 × 2
示例 3:
输入: 14
输出: false 
解释: 14 不是丑数,因为它包含了另外一个质因数 7。
说明:
    1 是丑数。
    输入不会超过 32 位有符号整数的范围: [−2^31,  2^31 − 1]。
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-1 14:52:07 | 显示全部楼层
本帖最后由 风扫地 于 2019-7-1 14:56 编辑
/*基本思路:利用求余运算探测,若有质因数2 3 5 就以除法的方式去掉*/
bool isUgly(int num)
{
    bool ret_val = true;
    if( num == 1 )
    {
        return ret_val;
    }
    if( num == 0 )
    {
        ret_val = false;
        return ret_val;
    }
    
    
    while(  ( num   !=1 )
          &&( num%2 ==0 )
    )
    {
        num /= 2;
    }
    
    while(  ( num   !=1 )
          &&( num%3 ==0 )
    )
    {
        num /= 3;
    }

    while(  ( num   !=1 )
          &&( num%5 ==0 )
    )
    {
        num /= 5;
    }
    
    ret_val = (num == 1);
    return ret_val;
}


/*
执行用时 :0 ms, 在所有 C 提交中击败了100.00%的用户
内存消耗 :6.6 MB, 在所有 C 提交中击败了54.44%的用户
*/

奇怪的是我当时还多写了一句: num = num<0?-num:num;
反而判我错,看来小于1的全部认为是非丑数了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 21:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表