0
그래서 나는이 코드를 가지고 :이 if 문은 항상 True를 반환하는 이유는 무엇입니까?
steps = 0
biggestSteps = 0
startY = 2
y = startY
def process(x):
global steps
steps = steps + 1
if x % 2 == 0:
return x/2
else:
return (3*x)+1
while True:
y = process(y)
if y == 1 or y == 4:
if steps > biggestSteps:
biggestSteps = steps
print("Biggest number yet: " + str(startY) + ", with " + str(steps) + " steps")
startY += 1
y = startY
steps = 0
이 코드를 실행하려고,
if steps > biggestSteps:
이 alawys가 True를 반환하고, 것이다 그것을 각 번호에 대한 것입니다
print("Biggest number yet: " + str(startY) + ", with " + str(steps) + " steps")
하는 나는 확실히 원하지 않는다.
번호가 가장 높은 단계 수에 도달했을 때만 인쇄하도록하려면 어떻게해야합니까?
편집 :
뭔가를 복사하거나 내가 때문에, while 루프 (그것은 아무것도 변경되지 않습니다 확신)
steps = 0
biggestSteps = 0
startY = 2
y = startY
def process(x):
global steps
steps = steps + 1
if x % 2 == 0:
return x/2
else:
return (3*x)+1
while True:
global steps
global biggestSteps
global startY
global y
y = process(y)
if y == 1 or y == 4:
if steps > biggestSteps:
biggestSteps = steps
print("Biggest number yet: " + str(startY) + ", with " + str(biggestSteps) + " steps")
startY += 1
y = startY
steps = 0
당신은 Collatz 추측 비디오를 보았습니까? :) – DeepSpace
아마도'while' 안에'global steps'을 사용하려고했을 것입니다. – DeepSpace
예. 실제로 Processing.py에서 작업하고 있었지만 우연히 그것을 닫았 기 때문에 일반 파이썬으로 처리하려고했습니다. 나는 기본적으로 코드를 붙여 넣었다. 그것이 작동하지 않는 이유는 알 수 없습니다. – Zobody