모두CBT

다음은 0 이상의 모든 정수 n에 대하여 n!을 구하는 파이썬 코드이다… | [7급 국가직 알고리즘] 26년 1회차 기출문제 상세 페이지

1[7급 국가직 알고리즘] 26년 1회차
다음은 0 이상의 모든 정수 n에 대하여 n!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이므로 옳다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 알고리즘] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 알고리즘 기출문제 암기장 전체 보기