알고리즘 연습 사이트
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);
댓글 없음:
댓글 쓰기