[BOJ] 10872 팩토리얼 (재귀)

[BOJ] 10872 팩토리얼 (재귀)

문제 링크

재귀 함수를 연습하기 위해서 풀이한 문제. 변수를 줄이고 반복적으로 동작하는 것에 대해서 간결하게 작성해야 했으나 무슨 while문 마냥 작성한 듯 하다. 그래서 풀이 후 다른 풀이를 참고하여 학습했다.

재귀는 재귀가 되는 문장, 그리고 종료 조건을 만드는 것이 핵심인 것 같다. 팩토리얼 같은 경우는 n==0이 됐을 때를 종료조건으로 생각할 수 있었다.

나의 풀이 - 재귀스럽지 않은 재귀

num = int(input())
result= 1

def f(n):
  global result

  if(n==0):
    return
  result *= n
  n -= 1
  f(n)

f(num)
print(result)

다른 풀이 - 이게 재귀지

def fac(num):
    if num == 0:
        return 1
    return num * fac(num-1)

print(fac(int(input())))

© 2021. All rights reserved.