Bootstrap

6.23 数学简单 263 190

263 丑数

判定一个数是否为丑数:质因子只有2 3 5的数。

思路:对n进行2取余并更新商直至其余数不为0 对3 5 有同样的操作,最后得到的余数为1则true。【注意如果全取if它一次循环就会全部判断一遍,如果它仍旧可以被2 3 整除但是单单不能被5整除,那他就会执行else语句中的break,emmm就错误了】
class Solution {
public:
    bool isUgly(int n) {
        if(n == 1)
            return true;
        while(n){
            if(n % 2 == 0){
                n/=2;
            }
            else if(n % 3 == 0){
                n/=3;
            }
            else if(n % 5 == 0){
                n/=5;
            }
            else{
                break;
            }
        }
        if( n == 1 )
            return true;
        else
            return false;
    }
};

190 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。

思路:位运算,ans左移一位,取n最低位为ans的最高位,n右移一位,重复32次
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t ans = 0;
        for(int i = 0;i<32;i++ ){
            ans = (ans << 1) | ( n & 1 );//ans左移一位并且添加n的最低位
            n >>= 1;//n右移一位
        }
        return ans;
    }
};

去练英语口语了,今天偷个懒,就俩题。

;