재귀함수란?

박성현·2024년 3월 19일

java

목록 보기
20/51

재귀함수 호출이란 ?

  • 해당 메소드 실행영역에서 해당 메서드를 다시 호출하는 것이다.
  • 해당 메서드가 무한 호출되므로 탈출 조건이 반드시 포함 되어야 한다.
  • 알고리즘이나 자료구조론에서 중요한 개념 => 복잡한 문제를 간단하게 처리 가능하다.
package methodex;

public class FactorialEx {

	public static void main(String[] args) {
		int n = 5;
		int rs1 = factorialFor(n);
		System.out.println(rs1);
		
		rs1 = factorialRecursive(n);
		System.out.println(rs1);
	}
	static int factorialRecursive(int n) {
		int rs=0;
		if(n==0 || n==1) rs = 1;
		else if (n>0) {
			rs = n* factorialRecursive(n-1);
		}
		return rs;
	}
	
	static int factorialFor(int n){
		int rs = 1;
		for(int i=n; i>0; i--) {
			rs= rs*i;
		}
		return rs;
	}
}

결과값 :


피보나치수열

  • 첫번째 및 두번째 항이 1이며 그 뒤의 모든 항은 바로 앞 두항의 합인 수열
  • n의 값을 1부터 넣어보면 값의 패턴이 보임
  • ex) 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
package methodex;

public class PibonachiEx {

	static int pivonachiRecursive(int n) {
		int rs = 0;
		if(n == 1 || n == 2) {
			rs = 1;
		}else if(n >= 3){
			rs = pivonachiRecursive(n-1) + pivonachiRecursive(n-2);
		}
		return rs;
	}   

	public static void main(String[] args) {
		// n값을 담아서 보내기 때문에 피보나치 수열의 결과가 달라진다.
		int n = 8;
		int rs = pivonachiRecursive(n);
		System.out.println(rs);     
	}
}
profile
개발기록장

0개의 댓글