继续减半直到 x=1

Keep on halving by integer division until x=1

函数是取一个正整数n除以2(使用整数除法)直到1。输出应该是这个值被除的次数。到目前为止我的代码是

def keep_halving(x):
    i=1
    for i in range(x):
        if x//2==0:
           return i

函数 运行 的示例

>>>keep_halving(4)
2

你可以试试这个:

n = int(input("enter number"))
while n > 1:
    n //= 2
    print (n)

输入:128

输出:

enter number128
64
32
16
8
4
2
1

这将使用 while 循环连续除以二,并在 n 达到一时停止。

编辑:我读你的问题太快了。这是更新的代码:

count = 0
n = int(input("enter number"))
while n > 1:
    n //= 2
    print (n)
    count +=1
print (count)

每当 n 除以二时,这将在 count 上加一。

输入:128

输出:

enter number128
64
32
16
8
4
2
1
7