인천의 자유인

파이썬으로 팩토리얼 구하기(반복문, 순환 이용) 본문

알고리즘&자료구조

파이썬으로 팩토리얼 구하기(반복문, 순환 이용)

Youngook 2024. 8. 1. 08:58
728x90
반응형

먼저 순환이라는 것이 무엇을 의미하는 말할 필요가 있을것 같습니다.

순환이란 어떤 함수가 자기 자신을 다시 호출하여 문자을 해결하는 프로그래밍 기법입니다. 

 

팩토리얼을 구할 수 있는 방법이라 하면 반복문과 순환을 이용하는 두가지 방법을 이용할 수 있는데 먼저 반복문 부터 봅시다.

 

1. 반복문

반복문을 이용한 예입니다.

def loop(n):
    a =1 
    for k in range(2, n+1):  
        a = a * k 
    return a

우리에게 굉장히 친숙한 방법입니다. a = 1로 한 것은 알겠지만 0으로 하면 계속 0이 되기 때문입니다.

이 예제는 그냥 1부터 n까지 계속 곱하는 간단한 식입니다.

반응형

2. 순환

순환을 사용한 예입니다.

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

이 부분을 보면 지속적으로 자기 자신을 호출하고 있음을 알게 된다. n이 1이면 return하는 이유는 멈추기 위해서 입니다. 계속 계속 값이 작아질텐데 만약 그것을 안한다면 음수까지도 계속 곱하는 이런 상황이 일어날 수 있기 때문입니다.

 


예제를 보면 순환을 왜 사용하는지 의문이 들수 있습니다. 왜냐하면 반복문이 훨씬 익숙하고 순환은 함수 호출에 의한 부분이 있기 때문이다. 하지만 이 부분을 배우는 이유는 앞으로 트리와 같은 특정한 문제에 대해 반복 보다 훨씬 간결한 코딩이 가능하기 때문입니다. 또한 알고리즘에도 유용하게 쓰일 때가 있다고 합니다. 

그러므로 힘들더라도 이 부분을 확실히 이해해야할 필요성이 있다고 생각합니다.

728x90
반응형