2019년 6월 11일 화요일

C언어 배우기 (재귀함수)

 오늘의 코드는 이것이다. 바로 재귀함수다. 재귀함수는 한 함수 안에서 그 함수가 호출되는 것이다. 알고리즘 문제를 풀 때는 매우 필요한데 실무에서는 메모리를 너무 잡아 먹어서 잘 쓰이지 않는다고 한다.
 아무튼 이 코드는 아무 수를 입력하면 그 수의 자리수를 다 더해서 출력하는 코드다. 솔직히 이 코드는 내가 생각해낸게 아니고 민준이가 생각해낸 코드다. rec(x % 10)을 통해서 1의 자리수부터 계속 더한다. 그리고 rec(x / 10)으로 자리수를 한자리씩 줄여간다. 그러면 계속해서 자리수가 누적되고 각 자리수들의 합을 구할 수 있다.
 재귀함수가 문제를 푸는 데 도움이 된다는건 알겠지만 처음에 좀 감을 잡기 힘들다. 그렇다고 포기하는 것도 좋은 선택은 아닌 것 같다. 앞으로 재귀함수로 푸는 알고리즘 문제를 많이 연습해서 익숙해질 수 있도록 해야 겠다. 그리고 어렵긴 해도 나름 재미도 있는 것 같다.

댓글 없음:

댓글 쓰기