파이썬 초급 #038 While 반복문으로 팩토리얼 6! 계산하기: 재귀 함수 활용

파이썬 초급 #038 while 반복문 팩토리얼 6! 재귀 함수

안녕하세요, 파이썬 초급 #038 while 반복문 팩토리얼 6! 재귀 함수를 배우는 시간입니다!

while 반복문을 활용하여 팩토리얼을 계산하는 방법과 재귀 함수를 사용하는 방법을 알아보겠습니다. 팩토리얼은 1부터 특정 정수까지의 모든 양의 정수를 곱한 결과입니다. 예를 들어 5의 팩토리얼은 1 * 2 * 3 * 4 * 5 = 120입니다.

팩토리얼을 구현하는 두 가지 방법

1. while 반복문을 사용하는 방법

while 반복문은 조건이 참인 동안 반복 실행됩니다. 팩토리얼을 계산하기 위해 while 반복문을 사용하는 방법은 다음과 같습니다.

“`python
def factorial(n):
if n == 0:
return 1
else:
result = 1
i = 1
while i <= n: result *= i i += 1 return result print(factorial(5)) # 120 출력 ``` 이 코드는 factorial이라는 함수를 정의하고, 입력 값 n이 0인 경우 1을 반환하고, 그렇지 않으면 result라는 변수에 1을 할당하고 i라는 변수에 1을 할당합니다. while 반복문은 i가 n보다 작거나 같을 때까지 반복됩니다. 각 반복에서 result는 i와 곱해지고 i는 1 증가합니다. 마지막으로 result가 반환됩니다. 2. 재귀 함수를 사용하는 방법 재귀 함수는 자기 자신을 호출하는 함수입니다. 팩토리얼을 계산하기 위해 재귀 함수를 사용하는 방법은 다음과 같습니다. ```python def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) print(factorial(5)) # 120 출력 ``` 이 코드는 factorial이라는 함수를 정의하고, 입력 값 n이 0인 경우 1을 반환하고, 그렇지 않으면 n과 factorial(n-1)의 곱을 반환합니다. factorial(n-1)은 factorial 함수 자체를 호출하는 부분으로, 이렇게 자기 자신을 호출하는 것을 재귀 호출이라고 합니다. 재귀 함수의 작동 원리 재귀 함수는 스택 구조를 이용하여 작동합니다. 함수가 호출될 때마다 스택에 함수의 상태가 저장됩니다. factorial(5)를 호출하면 다음과 같은 과정이 진행됩니다. 1. factorial(5) 호출: 5가 0이 아니므로 5 factorial(4)를 반환합니다. 2. factorial(4) 호출: 4가 0이 아니므로 4 factorial(3)를 반환합니다. 3. factorial(3) 호출: 3이 0이 아니므로 3 factorial(2)를 반환합니다. 4. factorial(2) 호출: 2가 0이 아니므로 2 factorial(1)를 반환합니다. 5. factorial(1) 호출: 1이 0이 아니므로 1 factorial(0)를 반환합니다. 6. factorial(0) 호출: 0은 0이므로 1을 반환합니다. 이제 스택에 저장된 함수 호출 결과를 따라 역순으로 계산하면 다음과 같습니다. 1. factorial(0)은 1을 반환합니다. 2. factorial(1)은 1 * 1 = 1을 반환합니다. 3. factorial(2)는 2 * 1 = 2를 반환합니다. 4. factorial(3)은 3 * 2 = 6을 반환합니다. 5. factorial(4)는 4 * 6 = 24를 반환합니다. 6. factorial(5)는 5 * 24 = 120을 반환합니다. 마무리 while 반복문과 재귀 함수는 팩토리얼을 계산하는 두 가지 방법입니다. while 반복문은 명시적으로 루프를 제어하는 반면, 재귀 함수는 스택을 이용하여 재귀적으로 계산을 수행합니다. 팩토리얼 계산과 같이 반복적인 계산을 수행하는 경우, while 반복문과 재귀 함수를 사용하여 효율적으로 코드를 작성할 수 있습니다.

여기에서 더 많은 정보를 확인하세요: dinhvixe247.vn

Categories: 파이썬 팩토리얼 For문: 간단하고 효율적인 계산 방법

See more: dinhvixe247.vn/category/economy

About Us

Sed gravida lorem eget neque facilisis, sed fringilla nisl eleifend. Nunc finibus pellentesque nisi, at is ipsum ultricies et. Proin at est accumsan tellus.

Featured Posts

    Categories