다음은 0 이상의 모든 정수 n에 대하여 n!을 구하는 파이썬 코드이다… | [7급 국가직 알고리즘] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 알고리즘] 26년 1회차
다음은 0 이상의 모든 정수 n에 대하여 을 구하는 파이썬 코드이다. (가)에 들어갈 코드로 옳지 않은 것은?def factorial(n):
if (가) :
return 1
return n * factorial(n - 1)
1
n == 0
2
n <= 0
3
n == 1
4
n <= 1
해설
(가)에 들어갈 코드로 옳지 않은 것은 n == 1이다.
0 이상의 모든 n을 처리하려면 n=0일 때 1을 반환하는 종료 조건이 필요하다. n == 1만 종료 조건이면 factorial(0)이 factorial(-1), factorial(-2), …로 끝없이 호출되어 재귀가 종료되지 않는다.
- n == 0은 0!=1을 반환하고, 1 이상은 0까지 내려와 종료되므로 옳다.
- n <= 0도 n=0에서 1을 반환하므로 옳다.
- n <= 1은 0과 1 모두에서 1을 반환하며 0!=1!=1이므로 옳다.
오류나 개정된 내용이 보이면 알려주세요