
재귀호출 함수에는 위처럼 무한 반복을 멈추게 하는 조건문을 가진 Base case와,
Base case에 수렴할 때까지 반복되는 행동이 있는 Recursive case로 나뉜다.
예제 1. 팩토리얼 (Factorial)

위 사진처럼 공식화(?) 해두고 프로그래밍하면 좋은 것 같다.

예제 2. X의 n승 (X^n)

예제 3. 피보나치 수열 (Fibonacci)


코드
import java.util.Scanner;
public class example {
    public static int fibonacci(int n) {
        if(n<2) return n;
        else {
            return fibonacci(n-1) + fibonacci(n-2);
        }
    }
    public static void main(String[] args) {
        System.out.println(fibonacci(4));
    }
}
예제 4. 최대공약수 (Euclid Method)

코드
import java.util.Scanner;
public class example {
    public static int gcd(int m, int n) {
        if(m<n) {
            int tmp = m;
            m = n;
            n = tmp;
        }
        if(m%n==0) return n;
        else
            return gcd(n, m%n);
    }
    public static void main(String[] args) {
        System.out.println(gcd(2, 6));
        System.out.println(gcd(2, 7));
    }
}
예제 5. 최대공약수 단순ver

코드
import java.util.Scanner;
public class example {
    public static int gcd(int p, int q) {
        if(q==0) return p;
        else return gcd(q, p%q);
    }
    public static void main(String[] args) {
        System.out.println(gcd(2, 6));
        System.out.println(gcd(2, 7));
    }
}
'Algorithm > Inflearn' 카테고리의 다른 글
| [Inflearn] 영리한 프로그래밍을 위한 알고리즘 - 순환 (Recursion) 의 개념과 기본 예제 2 (0) | 2022.11.09 | 
|---|---|
| [Inflearn] 자바 알고리즘 문제풀이 #02-04 4. 피보나치 수열 (0) | 2022.11.09 | 
| [Inflearn] 자바 알고리즘 문제풀이 #02-03 3. 가위 바위 보 (0) | 2022.11.08 | 
| [Inflearn] 자바 알고리즘 문제풀이 #02-02 2. 보이는 학생 (0) | 2022.11.07 | 
| [Inflearn] 자바 알고리즘 문제풀이 #02-01 1. 큰 수 출력하기 (0) | 2022.11.07 | 
 
									
								 
									
								 
									
								