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;
}
};
去练英语口语了,今天偷个懒,就俩题。