二进制中1的个数

来源:互联网 发布:python 特殊变量 编辑:程序博客网 时间:2024/05/16 17:10

题目描述

  • 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示

思路

  • 利用&运算,假设一个二进制数1100,将1100减1可得1011,再将1100&1011实际结果是将二进制数1100的最右边的1全部消除,对该运算进行计数,直至数字变为0。即知道数字1100中有多少个0。

Java Code

package rectcover;/** * Created by Administrator on 2017/1/15. */public class RectCover {    public static void main(String[] args)    {        int n = 3;        System.out.println(Solution.RectCover(n));    }}class Solution{    public static int RectCover(int target)    {        if(target == 1 || target == 2) return 1;        int x = 1;        int y = 1;        while(target-->2){            y = x + y;            x = y - x;        }        return y;    }}
0 0
原创粉丝点击