我正在编写一个程序,允许用户输入一个数字范围,然后程序将对该范围内的每个数字执行一个冰雹序列,然后打印具有最大循环长度的数字。我不明白为什么我的代码不起作用。我们需要使用while循环
def main():
#set starting variables
start_num = int(input('Enter starting number of the range: '))
#check if the numbers entered are positive and that the start is less than the end
while (start_num < 1):
start_num = int(input('Enter a positive starting number of the range: '))
end_num = int(input('Enter ending number of the range: '))
while (end_num < 1):
end_num = int(input('Enter a positive ending number of the range: '))
while (start_num > end_num):
start_num = int(input('Enter starting number of the range: '))
end_num = int(input('Enter ending number of the range: '))
cycle_length = 0
max_length = 0
num_max = 0
num = 0
while (start_num < end_num):
while (num != 1):
if (start_num % 2 == 0):
num = start_num / 2
cycle_length = cycle_length +1
else:
num = (start_num * 3) + 1
cycle_length = cycle_length +1
if (cycle_length >= max_length):
max_length = cycle_length
num_max = start_num
cycle_length = 0
start_num = start_num + 1
print(num_max)
print(max_length)
main()