본문 바로가기
알고리즘

[BAEKJOON] 10872 팩토리얼

by mAlfred 2023. 11. 24.
반응형

문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

출력

첫째 줄에 N!을 출력한다.

예제 입력 1 복사

10

예제 출력 1 복사

3628800

예제 입력 2 복사

0

예제 출력 2 복사

1

 


팩토리얼이란 

n! = 1*2*3 .... * n 까지 한 값이다.

 

여기서 중요한 점은 0! 라면 1이 나온다는 것과

1! 이라면 당연히 1이 나온다.

2! 라면 1*2 가 되는 것

 

그렇다면 여기서 볼 수 있는 규칙은 n-1씩 되어간다는 것이다.

풀 수 있는 방법은 간단하게 for문을 이용할 수 도 있고,

재귀함수를 구현해서 풀 수 도 있다.

 


import sys

def f(n):
    s = 1
    for i in range(1, n+1):
        s *= i
   
    return s

n = int(sys.stdin.readline().strip())
print(f(n))

 

import sys

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

n = int(sys.stdin.readline().strip())
print(f(n))

 

암튼 이렇게 풀 수 있다.

반응형

'알고리즘' 카테고리의 다른 글

[BAEKJOON] 2744 대소문자 바꾸기  (0) 2023.11.25
[BAEKJOON] 30676 이 별은 무슨 색일까  (0) 2023.11.25
[BAEKJOON] 2920 음계  (0) 2023.11.23
[BAEKJOON] 2420 사파리월드  (0) 2023.11.22
[BAEKJOON] 7287 등록  (0) 2023.11.22