关闭

determine if it is a power of two.

229人阅读 评论(0) 收藏 举报
<p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);"> 给定一个整数n,判断它是否为2的次方幂。</p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">思路:1,2,4,8,16...转换为二进制分别为:</p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">1 10    100    1000   10000  </p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">这些数减1后分别为</p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">0   01    011    0111   01111   </p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);"><span style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; white-space: pre; background-color: rgb(255, 255, 255);">与自身进行按位与,如果结果为0,表示这个数是2的n次幂</span>
</p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">10&01 = 0    100&011 = 0   1000&0111 = 0   10000&01111 = 0  </p>
public class Solution {
    public boolean isPowerOfTwo(int n) {
       
        if(n>0&&((n-1)&(n)) == 0) return true;
	    else return false;
    }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11037次
    • 积分:289
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:28篇
    • 译文:0篇
    • 评论:0条