一、题目列表:
题目1、二进制中1的个数 JZ15
题目2、数值的整数次方 JZ16
- & : 按位与操作
(当其数据类型为十进制整型时,需转化为二进制数据进行计算。) : 右移操作
1 是将n的二进制代码右移一个单位(也可理解为n/2)。
二、题目
题目1、二进制中1的个数 JZ15
输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。
数据范围:- 2^{31} <= n <= 2^{31}-1−2
即范围为:-2147483648<= n <= 2147483647−2147483648<=n<=2147483647
思路:
2.代码
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
count = 0
for i in range(32):
if n & 1 :
count +=1
n= n>>1
return count
题目2、数值的整数次方 JZ16
实现函数 double Power(double base, int exponent),求base的exponent次方。
注意:
1.保证base和exponent不同时为0。
2.不得使用库函数,同时不需要考虑大数问题
3.有特殊判题,不用考虑小数点后面0的位数。
思路:
2.代码
方法一:直接
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
return base**exponent
方法二:
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
if exponent < 0:
base = 1. / base
exponent = -exponent
res = 1.
for i in range(exponent):
res *= base
return res