我最近遇到了一些麻烦,创建了一个从1到所选数字的二进制计数程序。
这是我目前的代码:
num6 = 1
binStr = ''
num5 = input('Please enter a number to be counted to:')
while num5 != num6:
binStr = str(num6 % 2) + binStr
num6 //= 2
num6 = num6 + 1
print(binStr)
例如,如果我输入5,则需要输入1,10,11,100,101。 我似乎无法掌握它。任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
问题在于您将num6与输入数量无关。你不需要计算你分数的次数,所以你可以将num5除以2并取余数。我把你的binary_to_string放在一个函数中,并为你的输入值调用每个数字:
num5 = int(input('Please enter a number to be counted to:'))
for i in range(num5 + 1):
binStr = ""
decimal_number = i
while decimal_number > 0:
binStr = str(decimal_number % 2) + binStr
decimal_number //= 2
print(binStr)