memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

1. 팩토리얼 문제

1부터 n 까지의 곱, 팩토리얼(factorial)을 구하기

 

  • 1! = 1
  • 2! = 1 * 2
  • 3! = 1 * 2 * 3

2. 예제. 팩토리얼 구하기

아래 예제는 unittest 기반으로 작성했습니다. 그렇다고 알고리즘을 파악하는데 어려움은 없을것 같습니다.

팩토리얼을 구하는 방법에는 2가지 방법이 있다.

  1. test1(): 단순히 for 문을 이용하여 팩토리얼을 구한다.
  2. test2(): 재귀함수(recursive)를 이용하여 팩토리얼을 구한다.
    1. n! = n * (n-1)! 라는 점화식을 이용하여 재귀함수로 풀 수 있다.
<python />
# -*- coding: utf-8 -*- import unittest class Exam04(unittest.TestCase): @classmethod def setUp(cls): pass def test1(self): """단순히 for 문을 이용하여 팩토리을 구한다.""" n = 5 result = 1 for _ in range(1, n + 1): result *= _ self.assertEqual(120, result) def test2_recursive(self): """재귀함수를 이용하여 팩토리얼을 구한다.""" def factorial(k): if k <= 1: return 1 return k * factorial(k-1) self.assertEqual(120, factorial(5)) if __name__ == "__main__": unittest.main()

 

재귀 함수를 이용할때는 아래와 같은 종료 조건을 꼭 넣어줘야 한다. (종료조건이 없으면 무한 루프를 타게 됨)

<python />
def factorial(k) if k <= 1: return 1 ...

 

3. Reference

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!