728x90
https://www.acmicpc.net/problem/27433
나의 풀이
팩토리얼을 구현하는 문제이다.
팩토리얼은 \( N! \) 으로 표기하고 N보다 작거나 같은 모든 양의 정수의 곱이다.
반복문
for문을 n만큼 반복해 N보다 작거나 같은 모든 양의 정수를 곱해주어서 문제를 풀었음
import sys
num = int(sys.stdin.readline())
answer = 1
for i in range(num):
answer *= (i+1)
print(answer)
재귀함수
num과 answer를 파라미터로 하여 num <1 일 때 answer을 출력하여 문제를 풀었음
import sys
num = int(sys.stdin.readline())
answer = 1
def factorial(num, answer):
if num < 1:
print(answer)
return 0
else:
answer *= num
return factorial(num-1, answer)
factorial(num, answer)
다른 사람의 풀이
사실 재귀함수를 자주 사용하지 않아 쓰는 법이 능숙하지 않아 for문에서 answer을 사용했기 때문에 인자를 2개 받아 재귀함수를 사용하였는데 그렇게 사용하지 않고 num만으로 재귀함수를 통해 팩토리얼을 구현할 수 있다.
val = int(input())
def factorial(num):
if num <=0:
return 1
else:
return num * factorial(num-1)
print(factorial(val))
728x90
'Coding Test > Baekjoon' 카테고리의 다른 글
[Python] 파이썬 백준(25501) 재귀의 귀재 (0) | 2023.04.09 |
---|---|
[Python] 파이썬 백준(10870) 피보나치 수 5 (0) | 2023.04.09 |
[Python] 파이썬 백준(18258) 큐2 (0) | 2023.04.07 |
[Python] 파이썬 백준(1874) 스택 수열 (0) | 2023.04.06 |
[Python] 파이썬 백준(4949) 균형잡힌 세상 (0) | 2023.04.06 |