我正在編寫一個程序,允許用戶輸入一個數字範圍,然後該程序將執行該範圍內每個數字的冰雹序列,然後將打印出數量最大的數字週期長度。我不明白爲什麼我的代碼不工作。我們需要使用while循環使用嵌套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()
即使這樣做,程序不打印過什麼。它只是無限期地運行。 – Rsherrill
請發佈您的修改代碼。 – saulspatz