|

楼主 |
发表于 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的全部认为是非丑数了。。 |
|