📝 문제 설명
>
[설명] 팩토리얼 함수란 n이 주어졌을 때, 1부터 n까지 모두 곱한 값을 구하는 함수다. 예를 들면, 5! 값은 5 * 4 * 3 * 2 * 1 인 120이다.
[문제] 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/10872
🎨 풀이
💡 전체 코드
def factorial(num):
if num > 1:
return num * factorial(num-1)
else :
return 1
n = int(input())
print(factorial(n))
> 핵심 : 재귀 함수 사용!
factorial(1) 전까지는 계속 호출만 하다가 num이 1이 되었을 때 부터는 쭉 계산해서 쭉쭉 위로 올라가는 느낌으로 이해하면 된다.
🍦 코드 설명 (실행 순서대로 나열)
# main
n = int(input())
print(factorial(n))
1. n을 입력받는다.
2. factorial 함수를 실행한다. (출력은 실행 순서상 맨 마지막!!!! 아직 출력은 안한다!)
# factorial
def factorial(num):
if num > 1:
return num * factorial(num-1)
else :
return 1
3. 만약 num이 1 이상이라면 num * factorial(num-1)을 리턴한다.
4. 만약 num이 1이라면 1을 return한다.
# main
print(factorial(n))
5. factorial(n) 함수에서 리턴된 값을 출력한다.
끝~
⭐ 느낀점
> 하하. 재귀 너무 어렵다. ㅠㅠ 어려운데 이게 또 잘 활용하고 해내면 뭔가 뿌듯할 것 같기도 하고 그러네. 파이팅해보자구~
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 17478번 - 재귀함수가 뭔가요? (파이썬) (0) | 2022.07.28 |
---|---|
[백준] 10870번 - 피보나치 수 5 (파이썬) (0) | 2022.07.27 |
[백준] 1026번 - 보물 (파이썬) (0) | 2022.07.25 |
[백준] 11047번 - 동전 0 (파이썬) (0) | 2022.07.24 |
[백준] 1003번 - 피보나치 함수 (파이썬) (0) | 2022.07.23 |