반응형
2021/03/01 - [개발/알고리즘 기초공부] - Recurtion - 순환함수(재귀함수) (2)
2021/03/02 - [개발/알고리즘 기초공부] - Recursion - 순환함수(재귀함수) (3)
2021/03/02 - [개발/알고리즘 기초공부] - Recursion - 미로찾기
2021/03/04 - [개발/알고리즘 기초공부] - Recursion - Blob 셀 카운트
자기 자신을 호출하는 함수
- base case : 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다.
- recursive case : recursion을 반복하다보면 결국 base case로 수렴해야 한다.
public class Recurtion {
public static void main(String[] args) throws Exception {
System.out.println(func(10));
System.out.println(power(3, 10));
System.out.println(fibonacci(10));
System.out.println(gcd(30, 12));
}
public static int func ( int n ) {
if (n==0) return 0;
else return n + func (n -1 );
}
public static double power(double x, int n){
if ( n == 0) return 1;
else return x*power(x, n-1);
}
public static int fibonacci (int n){
if (n<=2) return n;
else return fibonacci(n-1)+fibonacci(n-2);
}
//최대공약수 유클리드호제법
//m>=nd 인 두 양의 정수 m과 n에 대하여 m이 n의 배수이면 gcd(m, n)=n이고,
//그렇지 않으면 gcd(m,n)=gcd(n, m%n)이다.
public static double 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);
}
}
반응형
'개발 > 알고리즘 기초공부' 카테고리의 다른 글
Recursion - 미로찾기 (0) | 2021.03.02 |
---|---|
Recursion - 순환함수(재귀함수) (3) (0) | 2021.03.02 |
Recursion - 순환함수(재귀함수) (2) (0) | 2021.03.01 |
백준 1712 : 손익분기점 (0) | 2021.02.28 |
비트연산 - 카카오 코딩테스트 (0) | 2021.02.27 |