Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

재귀 없이 숫자의 팩토리얼을 구하는 Python 프로그램

재귀(recursion)를 사용하지 않고 숫자의 팩토리얼(계승)을 구해야 하는 경우, 'while' 반복문을 활용하면 간단하게 해결할 수 있습니다.

팩토리얼(factorial)은 1부터 n까지의 모든 양의 정수를 곱한 값으로, n!로 표기합니다. 예를 들어 5! = 5 × 4 × 3 × 2 × 1 = 120입니다.

예제 코드

아래는 while 반복문을 사용해 팩토리얼을 계산하는 예시입니다.

my_num = int(input("숫자를 입력하세요 :"))
my_factorial = 1
while(my_num>0):
    my_factorial = my_factorial*my_num
    my_num=my_num-1
print("해당 숫자의 팩토리얼은 : ")
print(my_factorial)

실행 결과

숫자를 입력하세요 :7
해당 숫자의 팩토리얼은 :
5040

동작 원리 설명

  • 사용자로부터 숫자를 입력받습니다.
  • 결과를 저장할 변수를 1로 초기화합니다.
  • 입력받은 숫자가 0보다 큰지 확인합니다.
  • 0보다 크다면, 현재 변수의 값에 해당 숫자를 곱합니다.
  • 곱한 결과를 다시 같은 변수에 저장합니다.
  • 입력받은 숫자를 1씩 감소시키며 0이 될 때까지 위 과정을 반복합니다.
  • 반복이 종료되면 최종 결과값을 콘솔에 출력합니다.

이 방식은 재귀 호출 없이도 반복문만으로 팩토리얼을 효율적으로 계산할 수 있으며, 깊은 재귀 호출로 인한 스택 오버플로우 걱정 없이 큰 숫자도 안전하게 처리할 수 있다는 장점이 있습니다.