https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1
10
예제 출력 1
3628800
예제 입력 2
0
예제 출력 2
1
# sol.1 - for문 (40ms)
n = int(input())
fact = 1
if n>0:
for i in range(1, n+1):
fact *= i
print(fact)
# sol.2(1) - 함수 정의하기 (44ms)
def factorial(n):
result = 1
if n > 0 :
result = n * factorial(n-1)
return result
n = int(input())
print(factorial(n))
# sol.2(2) - 함수 정의하기 (40ms)
def factorial(n):
if n == 0 :
return 1
return n * factorial(n-1)
n = int(input())
print(factorial(n))
처음에 for문과 while의 break를 혼용해서 써서 틀렸다.
팩토리얼은 자주 나오는 유형같으니 꼭 기억해놔야 한다.
파이썬 코딩 도장: 31.2 재귀호출로 팩토리얼 구하기
이번에는 재귀호출을 사용하여 팩토리얼을 구현해보겠습니다. 팩토리얼은 1부터 n까지 양의 정수를 차례대로 곱한 값이며 !(느낌표) 기호로 표기합니다. 예를 들어 5!은 5 * 4 * 3 * 2 * 1이며 결과는
dojang.io
'Algorithm > 백준' 카테고리의 다른 글
[파이썬/백준 10807] 개수 세기 - list.count() (0) | 2023.02.16 |
---|---|
[파이썬/백준 11654] 아스키 코드 (0) | 2023.02.16 |
[파이썬/백준 2420] 사파리월드 - 절대값 abs (0) | 2023.02.15 |
[파이썬/백준 7287] 등록 - 개행문자 \n 출력 (0) | 2023.02.15 |
[파이썬/백준10699] 오늘 날짜 - datetime.datetime.now() (0) | 2023.02.15 |