블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
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
반응형
posted by 조이키트 블로그