본문 바로가기
알고리즘

순환함수(재귀함수, Recursion)

by 멋진 개구리 2020. 6. 4.
반응형

순환함수, 재귀함수,Recursion

Ex01 - 무한 루프 In java

public class Recursion {

	public static void main(String[] args) {
		
		func();
	}
	
	public static void func() {
		
		System.out.println("hello recursion");
		func();
		
	}

}

 실행 결과

무한 루프로 인한 오류

Ex02 - 재귀함수 2 In java

public class Recursion {

	public static void main(String[] args) {
		
		func(5);
	}
	
	public static void func(int k) {
		if(k<=0)
			return;
		else
		System.out.println("hello recursion");
		func(k-1);
		
	}

}

 실행결과

5번 찍힘

순환함수 필수조건!!
base case가 필요함 
여기에서 base case는 
if(k<=0)
return;
//최대한 무한루프에 빠지지 않게 조건을 준다.
그리고 base case로 수렴하도록 하게 만든다
func(k-1);

Ex03 - 등차수열

public class Recursion {

	public static void main(String[] args) {
		
	 int result =func(5);
	 System.out.println(result);
	}
	
	public static int func(int k) {
		if(k==0)
			return 1;
		else
		return k + func(k-1);
		
	}

}

 실행결과

1+2+...+5

Ex04 - 팩토리얼 !

public class Recursion {

	public static void main(String[] args) {
		
	 int result =func(4);
	 System.out.println(result);
	}
	
	public static int func(int k) {
		if(k==0)
			return 1;
		else
		return k * func(k-1);
		
	}

}

실행결과 -> 24

 

 

 

반응형

'알고리즘' 카테고리의 다른 글

recursion으로 미로찾기  (0) 2020.06.23
최댓값 구하는 알고리즘_java  (0) 2020.06.16
recursion - 순차탐색, 이진트리탐색  (0) 2020.06.09

댓글