[파이썬(python)]-팩토리얼

배병진·2023년 7월 13일
0

개인공부-Python

목록 보기
20/22

팩토리얼

  • 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
profile
history and study

0개의 댓글