Python编程之数据结构与算法练习_002

声明:题目出自《剑指Offer》。算法原理请自行找书撸, 不废话。直接上Python版本代码。

题目一:给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

#不应该使用递归,效率太低
import random
lst = random.sample(range(1,100),2)
x,y = lst
while y != 0:
    x,y = x^y,(x&y)<<1
else:
    print("{} + {} = {}".format(lst[0],lst[1],x))

题目二:计算二进制中1的个数。

import random
number = random.randint(1,100)
print("number:{} binary:{} ".format(number,bin(number)))
count = 0
while number != 0:
    number,count = (number-1)&number, count + 1
else:
    print(count)
原文地址:https://www.cnblogs.com/orcsir/p/8675501.html