2019년 4월 6일 토요일

Hackerrank Day 9 Recursion 3





알고리즘 연습 사이트
www.hackerrank.com


Day 9:Recursion 3

재귀 메소드 안에 특정조건까지는 자기자신을 호출하면서 프로그램이 동작하다가 재귀 호출을 끝내는 시점을 잘 지정해놓아야 무한 루프에 빠지지 않는다.

가장 기초적인 재귀 호출 연습으로 factorial 를 풀어보았다.
5! = 5 * 4 * 3 * 2 * 1 이런 규칙으로 연산이 되기 때문에 n자기자신이 1보다 큰 순간까지는 n 과 n-1의 곱을 리턴한다. n-1곱은 또다시 4! 이 되는 것이기 때문에 동일 작업이 반복되다가 n이 1이 되는 순간 return 1이 되면서 최초 호출한 factorial 메소드까지 return 값을 전달하게 된다.

static int factorial(int n) {
      if(n>1){
        return n * factorial(n-1);
      }else{
        return 1;
      }
}

factorial 구하는 메소드 사용법은 n을 원하는 숫자를 넣으면 된다.
int result = factorial(n);


댓글 없음:

댓글 쓰기