67.5 연습문제: 재귀호출로 1부터 100까지의 합 구하기

다음 소스 코드를 완성하여 1부터 100까지의 합이 출력되게 만드세요

practice_recursive_function_sum_of_1_to_100.c

#include <stdio.h>

int sum(int n)
{
    _________________________
    ...
    _________________________
}

int main()
{
    printf("%d\n", sum(1));

    return 0;
}

실행 결과

5050

정답

if (n == 100)
    return 100;

return n + sum(n + 1);

해설

재귀호출로 1부터 100까지 구해야 합니다. 먼저 sum에 1을 넣고 있으므로 1부터 100까지 값을 증가시킨 뒤 100에서 중단해야 합니다. sum 함수에서 재귀호출을 할 때는 return n + sum(n + 1);과 같이 sum 함수에 n을 1씩 증가시킨 값을 넣어주고, sum에서 반환된 값을 n과 더해서 다시 반환하도록 만들면 됩니다.