2009년 03월 11일
파이썬으로 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를 보고 쓰러지는 줄 알았다.
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 | 2009/03/11 14:05 | 일상 | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]