재귀의 대표적인 문제
만약 n이 4이면 f(3)이 결국 1 * 1 * 2 * 3
이란 값을 갖게 된다는 것이 중요!
a = 0으로 초기화 해뒀던 것에 영향 받지 않음!
애초에 위에서 주는 값이 아니라 f(n-1)
로 돌아오는 리턴값을 받아서 실행하는 것이기 때문!
import sys
n = int(sys.stdin.readline())
def fac(n):
if n == 0:
return 1
else:
a = 0
if n == 1:
return 1
a = n * fac(n-1)
return a
print(fac(n))
다시 푼 팩토리얼 문제 풀이
import sys
n = int(sys.stdin.readline())
def fac(n):
if n > 0:
return n * fac(n-1)
else:
return 1
print(fac(n))