1부터 n까지의 합을 계산하는 다음 알고리즘의 빈칸에 들어갈 코드는? … | [7급 국가직 알고리즘] 23년 1회차 기출문제 상세 페이지
1[7급 국가직 알고리즘] 23년 1회차
1부터 n까지의 합을 계산하는 다음 알고리즘의 빈칸에 들어갈 코드는? (단, n ≥ 1인 정수이다)int sum(n){
if (n == 1)
return 1;
else
( );
}1
return n + sum(n - 1)
2
return n - sum(n - 1)
3
return n + sum(n + 1)
4
return n - sum(n + 1)
해설
빈칸에는 return n + sum(n - 1)이 들어간다.
1부터 n까지의 합은 n에 1부터 n-1까지의 합을 더한 값이므로 이고, 인자가 1씩 줄어 기저 조건 n == 1에 도달한다.
예: sum(3) = 3 + sum(2) = 3 + 2 + sum(1) = 6
- n에서 sum(n - 1)을 빼면 합이 아니라 차가 되어 sum(2)가 1이 되는 등 결과가 틀린다.
- n에 sum(n + 1)을 더하면 인자가 커지기만 해 n == 1에 도달하지 못하고 무한 재귀에 빠진다.
- n에서 sum(n + 1)을 빼는 경우도 인자가 증가해 종료되지 않는다.
오류나 개정된 내용이 보이면 알려주세요