【问题标题】:Count how many times can a number be divided by 2 - PYTHON计算一个数字可以被2除多少次 - PYTHON
【发布时间】:2022-10-15 01:33:20
【问题描述】:
n = int(input())
counter = 0
while n > 0:
   if (n // 2) > 1:
    counter = counter +1
    
print (counter)

你好, 我是一名 Python 学习者,但我在完成这项作业时遇到了问题。

从输入中读取一个自然数。 找出这个数字连续多少次可以被二除 (例如 80 -> 40 -> 20 -> 10 -> 5,答案是 4 次)

我应该使用while循环来做到这一点.

任何想法,因为我真的不知道该怎么做。 这是我最好的尝试

【问题讨论】:

  • 如果n 永远不会改变,您的循环将永远不会结束。
  • 您需要在循环内更新n
  • 你必须检查这个数字是否是偶数。如果没有,则离开循环。

标签: python


【解决方案1】:

你没有改变n。我会这样写:

while (n % 2) == 0:
    n //= 2
    counter = counter +1

【讨论】:

  • 建议:counter += 1
【解决方案2】:

虽然该数字可以被2 整除,但将其除以2 并增加counter

num = int(input('Enter a number: '))

counter = 0
while num % 2 == 0:
    num = num / 2
    counter = counter + 1

print(counter)

【讨论】:

  • 如何这能回答问题吗?你的答案应该解释什么是错的,以及你的答案是如何纠正的。
【解决方案3】:
n = int(input())
c = 0
while n>=10:
    n//=2
    c+=1
print (c)

【讨论】:

  • 这是错误的。如果n8,则小于10,但仍可被2 整除。
猜你喜欢
  • 1970-01-01
  • 2017-11-12
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多