입력된 숫자가 짝수인지 홀수인지 확인해야 할 때 재귀(recursion)를 활용할 수 있습니다. 재귀는 큰 문제를 작은 단위로 나누어 각 부분의 결과를 계산한 뒤, 이를 결합해 전체 문제의 해답을 도출하는 방식입니다.
예제 코드
아래는 재귀 함수로 홀수와 짝수를 판별하는 파이썬 코드 예제입니다.
def check_odd_even(my_num):
if (my_num < 2):
return (my_num % 2 == 0)
return (check_odd_even(my_num - 2))
my_number = int(input("확인할 숫자를 입력하세요:"))
if(check_odd_even(my_number)==True):
print("짝수입니다")
else:
print("홀수입니다!")실행 결과
확인할 숫자를 입력하세요:48 짝수입니다
코드 설명
- 'check_odd_even'이라는 이름의 함수가 정의되며, 하나의 숫자를 매개변수로 받습니다.
- 숫자가 2보다 작으면 해당 수를 2로 나눈 나머지를 계산해 0과 비교합니다. 나머지가 0이면 짝수라는 의미입니다.
- 숫자가 2 이상이면 함수가 자기 자신을 다시 호출하며, 이때 전달되는 값은 원래 숫자에서 2를 뺀 값입니다.
- 함수 외부에서는 사용자로부터 숫자를 입력받습니다.
- 함수를 호출한 결과가 'True'인지 확인하고, 참이면 짝수로 판별합니다.
- 그렇지 않으면 홀수로 간주합니다.
- 최종 결과가 화면에 출력됩니다.
재귀 방식의 동작 원리
이 코드는 숫자에서 2를 반복적으로 빼며 기저 조건(base case)인 2 미만까지 내려갑니다. 2씩 빼더라도 숫자의 홀짝 성질은 변하지 않으므로, 마지막에 남은 0 또는 1만 검사하면 원래 숫자가 짝수인지 홀수인지 알 수 있습니다. 다만 파이썬에는 재귀 호출 깊이 제한(기본값 약 1,000회)이 있으므로, 매우 큰 숫자를 입력할 경우 오류가 발생할 수 있다는 점에 유의해야 합니다.