재귀(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이 될 때까지 위 과정을 반복합니다.
- 반복이 종료되면 최종 결과값을 콘솔에 출력합니다.
이 방식은 재귀 호출 없이도 반복문만으로 팩토리얼을 효율적으로 계산할 수 있으며, 깊은 재귀 호출로 인한 스택 오버플로우 걱정 없이 큰 숫자도 안전하게 처리할 수 있다는 장점이 있습니다.