[백준] 10872 : 팩토리얼

letsbebrave·2022년 4월 2일
0

codingtest

목록 보기
66/146
post-thumbnail

문제

재귀의 대표적인 문제


만약 n이 4이면 f(3)이 결국 1 * 1 * 2 * 3이란 값을 갖게 된다는 것이 중요!

a = 0으로 초기화 해뒀던 것에 영향 받지 않음!
애초에 위에서 주는 값이 아니라 f(n-1)로 돌아오는 리턴값을 받아서 실행하는 것이기 때문!

풀이 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))

풀이 2.

다시 푼 팩토리얼 문제 풀이

import sys

n = int(sys.stdin.readline())

def fac(n):
    if n > 0:
        return n * fac(n-1)
    else:
        return 1

print(fac(n))
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글