파이썬으로 factorial 구하기

  작년 이맘때 factorial을 구하는데 코드를 엄청 길게 썼던 것으로 기억난다. 한 페이지 넘게?
BioXP 워크샵인데 사람들 앞에서 발표까지 했다.
  그러다가 몇달 후에 '테스트주도 개발'을 읽는데 부록을 보고 충격을 받았다. 어처구니 없이 쉽게 구하던 것이었다.
책을 읽으면서 얼굴이 화끈거릴 정도로 엄청 창피했었다.
그 워크샵에서 발표할때 사람들이 얼마나 속으로 웃었을까?

  어제 SICP 스터디를 하다가 factorial을 구할 일이 있어서 작성한 코드다. else에서 return을 빼먹어서 1분 걸렸나?

def fact(n):
    if n <= 1:
        return 1
    else:
        return n * fact(n-1)

  재귀호출이라서 n이 커지면(1000이상) 오류가 발생하지만 답 확인용으로 작성했다.

  다행히도 지난 1년간 성장했나보다...

  fact(10) = 10! = 10 * 9 * 8 * ... * 3 * 2 * 1 = 3628800

ps. 생각해보니 워크샵에서 했던 건 factorial이 아니라 피보나치 수열을 구하는 코드였다.
     나중에 테스트 주도 개발 부록 B를 보고 쓰러지는 줄 알았다.

by Solid_One | 2009/03/11 14:05 | 일상 | 트랙백 | 덧글(0)

트랙백 주소 : http://solidone.egloos.com/tb/2294730
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶