[BOJ/백준-Python]10872번 - 팩토리얼

10872번 - 팩토리얼

문제

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

입력

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

출력

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

예제 입력 1

10

예제 출력 1

3628800

예제 입력 2

0

예제 출력 2

1

해결할 방법을 생각해보자.💡

팩토리얼을 구현하는 방법은 두 가지가 있다.

  1. 재귀함수를 사용하지 않고 for문을 사용하는 법
  2. 재귀함수를 사용하는 법

나는 2번으로 풀어봤다.

재귀함수란 함수 안에 자신을 넣어주어 함수가 계속 실행되게 만드는 함수다.

우선, 0!과 1!은 1이라는 것을 염두해두고 함수를 정의해보자.

def factorial(x):
    if x <= 1:
        return 1
    
    result = x * factorial(x-1)
    return result

이것이 팩토리얼 값을 얻을 수 있는 함수다.

1과 같거나 작아지면 1을 반환하게하여 재귀함수가 무한정으로 돌아가는 것을 방지할 수 있다.

result를 만들어 주어 함수의 파라미터인 x와 x-1이 계속 곱해지는 값이 저장되게 만들어주자.

구조는 다음과 같다.

# 파라미터 x가 3일 경우
3 * 2
	2 * 1
    	1

이런 식으로 구현이 되어 3!은 6이라는 것을 계산해주는 것이다.

그리고 이제 팩토리얼값 N을 받아서 함수의 파라미터로 넣어 출력해주면 끝이다.

N = int(input())
print(factorial(N))

코드💻

def factorial(x):
    if x <= 1:
        return 1
    
    result = x * factorial(x-1)
    return result
N = int(input())
print(factorial(N))

해결 로그

문제 푼 날짜 체크
2022-06-15
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑