8,二进制中1的个数
题目描述:
输入一个整数,输出该数二进制表示中1的个数。
其中负数用补码表示。
解题思路:与运算
一个不为零的整数,至少一个为1. n 减1 的二进制在最右边的1变为0,后面的0变为1
n与n-1 去与 则 从最右的1开始全部变为0,若能进行几次操作最后等于0则就有几个1.
比如 110 减1 后 101 求与 100 ,再次同样的操作 最后为0 次数2=1的次数
public static int numberOf2(int n) { int count = 0; while(n!= 0){ count++; n = n & (n - 1); } return count; }
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。
求base的exponent次方。
public double Power(double base, int exponent) { double sum=1; boolean flag=false; if(exponent<0){//判断是否大于0 exponent=-exponent; flag=true; } while(exponent>=1){ sum*=base; exponent--; } if(flag){ return 1/sum; } return sum; }

浙公网安备 33010602011771号