在 Python 中查找最小一位操作以使整数为零的程序
假设我们有一个数字n,我们必须使用以下操作多次将其转换为0-
选择n的二进制表示中最右边的位。
当第(i-1)位设置为1且第(i-2)至第0位设置为0时,更改n的二进制表示中的第i位。
所以最后我们必须找到将n转换为0所需的最少操作次数。
所以,如果输入像n=6,那么输出将是4,因为最初6=“110”,然后通过第二次操作将其转换为“010”,然后使用第一次操作转换为“011”,然后转换为“001"使用第二个操作,最后使用第一个操作转换为"000"。
示例
让我们看下面的实现来更好地理解
def solve(n):
n=list(map(int,bin(n)[2:]))
m=[]
last=0
for d in n:
if last==1:
d=1-d
last=d
m.append(d)
m=''.join(map(str,m))
return int(m,2)
n = 6
print(solve(n))输入
"95643", "45963"输出结果
4
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语