21xrx.com
2024-09-20 00:55:52 Friday
登录
文章检索 我的文章 写文章
判断整数n是否为丑数的C++实现
2023-06-24 11:25:01 深夜i     --     --
判断 整数 ugly number C++ 实现

在数学中,丑数是只有2、3、5这三个因子(质因子也可以称作质数)的正整数。例如,6、8都是丑数,而14不是,因为它有一个7作为因子。我们可以用一个简单的算法来判断一个整数n是否是丑数。

C++代码实现如下:


class Solution {

public:

  bool isUgly(int n) {

    if (n <= 0) return false;

    while (n % 2 == 0) n /= 2;

    while (n % 3 == 0) n /= 3;

    while (n % 5 == 0) n /= 5;

    return n == 1;

  }

};

首先判断n是否小于等于0,如果是则返回false。否则就把n分别除以2、3、5,直到n不能再被它们整除为止。最后,判断n是否等于1,如果是则说明n是个丑数,否则n就不是丑数。

这个算法的本质就是,如果一个数是丑数,它必然可以被2、3、5一直除下去直到剩余1,而剩余1就是判断是否是丑数的关键。

总之,这个简单的算法可以快速地判断一个整数是否是丑数,并且时间复杂度很小,只需要O(log n)的时间复杂度。因此,在解决相关问题时,可以参考这个算法的思路,快速地找到答案。

  
  
下一篇: Node.js文档

评论区

{{item['qq_nickname']}}
()
回复
回复