通过整数除法继续减半,直到x = 1

时间:2016-10-30 15:27:51

标签: python integer division

该函数取正整数n并将其除以2(使用整数除法),直到达到1.输出应该是该值除以的次数。到目前为止,我的代码是

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

该函数应如何运行的一个例子是

>>>keep_halving(4)
2

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

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

输入:128

输出:

enter number128
64
32
16
8
4
2
1

这将使用while循环连续除以2,并在n变为1时停止。

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

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

每次count除以2时,这会在n上添加一个。

输入:128

输出:

enter number128
64
32
16
8
4
2
1
7