2023. 7. 30. 17:51
파이썬
728x90
반응형
첫 번째 factI(n)식은 바탕 명제를 정의한것이고, 두 번째 factR식은 이전에 계승된 수에 관해서 바탕 명제를 제외한 모든 자연수의 계승을 정의한것이다.
#계승을 반복함수로 구현한 factI와 재귀함수로 구현한 factR 코드
def factI(n):
"""Assumes that n is an int > 0
Returns n!"""
result = 1
while n > 1:
result = result*n
n -= 1
return result
def factR(n):
"""Assumes that n is an int > 0
Returns n!"""
if n == 1:
return n
else:
return n*factR(n-1)
print('factI : ', factI(1))
print('factR : ',factR(1))
출력결과
먼저 factI 함수부터 살펴보면 n=1인 경우 반복문 while n > 1이 리턴하지 않으므로 결과는 None이 된다.
그리고 factR 함수는 n = 1인 경우 결과값 1을 그대로 반환하게 된다.
factI : None
factR : 1
factI에서 n = 2인 경우 result = result*n → result = 1*2가 되어 결과 값은 2가 된다.
factR에서 n = 2인 경우 n*(n-1)! = 2x(2-1)=2가 출력된다.
factI : 2
factR : 2
factI에서 n = 3인 경우 result = result*n → result = 1*3가 되어 결과 값은 3가 된다.
factR에서 n = 3인 경우 n*(n-1)! = 3x(3-1)!=3x2!이 되어 6이 출력된다.
factI : 3
factR : 6
728x90
반응형
'파이썬' 카테고리의 다른 글
(파이썬) 피보나치 수열의 재귀적 구현 (0) | 2023.08.02 |
---|---|
(파이썬) 피보나치 수열의 재귀적 구현 (0) | 2023.08.02 |
(파이썬) 이분 검색을 일반화 하는 함수 findRoot, 검사함수 testFindRoot (0) | 2023.07.30 |
(파이썬) 2차 방정식 함수 정의 (0) | 2023.07.30 |
(파이썬) 1차 방정식 함수 정의 (0) | 2023.07.30 |