팩토리얼
- n n-1 n-2... * 1의 결과값을 반환
재귀를 이용한 팩토리얼
def factorial(x):
if x > 1:
return x * factorial(x-1) // x의 값과 x-1을 한 값을 계속 곱해줌
else:
return 1 // 1일 경우 빠져나옴
a = factorial(5)
a1 = factorial(4)
a2 = factorial(3)
a3 = factorial(2)
a4 = factorial(1)
a5 = factorial(0)
print(f'factorial:{a}')
print(f'factorial:{a1}')
print(f'factorial:{a2}')
print(f'factorial:{a3}')
print(f'factorial:{a4}')
print(f'factorial:{a5}')
>>>
factorial:120
factorial:24
factorial:6
factorial:2
factorial:1
factorial:1
반복을 이용한 팩토리얼
def factorial(x):
a=1
for val in range(1, x+1):
a *=val
return a
a0 = factorial(5)
a1 = factorial(4)
a2 = factorial(3)
a3 = factorial(2)
a4 = factorial(1)
a5 = factorial(0)
print(f'factorial:{a0}')
print(f'factorial:{a1}')
print(f'factorial:{a2}')
print(f'factorial:{a3}')
print(f'factorial:{a4}')
print(f'factorial:{a5}')
>>>
factorial:120
factorial:24
factorial:6
factorial:2
factorial:1
factorial:1
math.factorial함수
- math.factorial(n)
- n이 0보다 작을 경우 Error를 반환
- n이 정수여야 하며, 실수 인 경우 Error반환
import math
a0 = math.factorial(5)
a1 = math.factorial(4)
a2 = math.factorial(3)
a3 = math.factorial(2)
a4 = math.factorial(1)
a5 = math.factorial(0)
print(f'math.factorial:{a0}')
print(f'math.factorial:{a1}')
print(f'math.factorial:{a2}')
print(f'math.factorial:{a3}')
print(f'math.factorial:{a4}')
print(f'math.factorial:{a5}')
>>>
math.factorial:120
math.factorial:24
math.factorial:6
math.factorial:2
math.factorial:1
math.factorial:1