# Collatz Conjecture Program
from time import perf_counter_ns
from time import sleep
it_count = 0
n = 0
def Select_Number():
print("")
print("On a cooldown for 5 seconds")
sleep(1)
print("On a cooldown for 4 seconds")
sleep(1)
print("On a cooldown for 3 seconds")
sleep(1)
print("On a cooldown for 2 seconds")
sleep(1)
print("On a cooldown for 1 seconds")
sleep(1)
print("On a cooldown for 0 seconds")
sleep(1)
sn = 1
if sn == 0:
print("This number is invalid.")
print()
print()
Select_Number()
else:
sn += 1
Calculate(sn)
def Auto_Select_Number():
print("")
print("On a cooldown for 5 seconds")
sleep(1)
print("On a cooldown for 4 seconds")
sleep(1)
print("On a cooldown for 3 seconds")
sleep(1)
print("On a cooldown for 2 seconds")
sleep(1)
print("On a cooldown for 1 seconds")
sleep(1)
print("On a cooldown for 0 seconds")
sleep(1)
if sn == 0:
print("This number is invalid.")
print()
print()
Select_Number()
else:
sn += 1
Calculate(sn)
def Calculate(n):
global it_count
it_count = 0
start = perf_counter_ns()
while n != 1:
if n % 2:
n = (n * 3 + 1)
#print(n) #Prints All Numbers (Slows Program Speed)
it_count += 1
else:
n = (n // 2)
#print(n) #Prints All Numbers (Slows Program Speed)
it_count += 1
end = perf_counter_ns()
print("The number has reached " + str(n) + " with only " + str(it_count) + " iterations! (Time taken: " + format(
end - start) + " nanoseconds.)")
print()
Select_Number()
Select_Number()
你好,所以我试图创建一个 collatz 猜想程序,我成功了,但我想让输入变量 (sn) 从 1 开始,每次程序运行时,输入变量 (sn) 都会增加 1 .但是我尝试了很多次都失败了。这是工作版本,但我无法弄清楚的主要问题是确定这是第二次还是多次运行程序并将其添加到 sn。