def a(n):
if n == 1:
return 1
if n == 2:
return 1
else:
return a(int(n-1))+a(int(n-2))
print(a(7))def a(n):
if n == 1 or 2:
return 1
else:
return a(int(n-1))+a(int(n-2))
print(a(7))
if n == 1:
return 1
if n == 2:
return 1
else:
return a(int(n-1))+a(int(n-2))
print(a(7))def a(n):
if n == 1 or 2:
return 1
else:
return a(int(n-1))+a(int(n-2))
print(a(7))
왜 다른 값이 나오는거임? 논리연산자 다음에 or로 묶으면 안됨? 묶는 방법 없나요?
답변좀요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
n == 1 or 2가 파이썬은 어떻게 받아들이냐면 (n == 1) or 2로 받아들임. 근데 if 2: ~~ 돌려보면 알겠지만 0만 아니면 무조건 True 떠서 두 번째 함수의 첫 if는 무조건 True다. 안 돌려봐서 잘 모르겠지만 내 예상에는 두 번째 함수는 1을 돌려주고 첫 번째 함수는 그러지 않을 것 같은데 맞음?