[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())))