티스토리 뷰
public class Recursion {
public static void main(String[] args) {
int n = 4;
func(n);
}
public static void func(int k) {
if(k <= 0)
return;
else {
System.out.println("Hello...");
func(k-1);
}
}
}
- 순환(recursion)이 항상 무한루프에 빠지는 것은 아님.
- Base case: 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다.
- Recursive case: recursion을 반복하다보면 결국 base case로 수렴해야 한다.
- 1-n까지의 합
- Fibonacci Number
public int fibonacci(int n) {
if(n<2)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}
- 이 밖에 최대공약수를 구하는 예제가 있다.
'algorithm' 카테고리의 다른 글
자연수의 합, 진약수의 합 (0) | 2020.11.25 |
---|---|
[Algorithm] 순환(recursion) 알고리즘(예제) (0) | 2020.05.30 |
[Algorithm] LeetCode 20. Valid Parentheses using Stack (0) | 2020.05.30 |
[Algorithm] LeetCode 448. Find All Numbers Disappeared in an Array using ArrayList (0) | 2020.05.24 |
[Algorithm] LeetCode 202.happy number using HashSet (0) | 2020.05.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Stack
- C
- 알고리즘
- 소프트웨어
- 이진탐색
- BFS
- 입출력장치
- 병행프로세스
- 배열
- 클래스
- 인접리스트
- client side rendering
- 최단경로
- server side rendering
- 재귀함수
- dfs
- 운영체제
- 구조체
- javascript
- 동적프로그래밍
- 인접행렬
- 자료구조
- Java
- 스텍
- 세마포어
- C++
- 교착상태
- 퀵정렬
- react
- stackframe
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함