반응형
문제
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 |