일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 테스트 자동화
- java.sql.SQLSyntaxErrorException
- 피보나치함수 예제
- 재귀 예제
- CSTS 폭포수 모델
- recursion example
- 해외주식 양도세 신고
- oracle group by
- 톰캣 실시간 로그
- Katalon Recorder 사용법
- katalon xpath
- js 자동완성
- 해외증권 양도세 한국투자증권
- 홈택스 해외주식 양도세
- 국세청 해외주식 양도세 신고방식
- tomcat log
- 한국투자증권 해외주식 양도세
- katalon 비교
- javascript 자동완성
- katalon
- 한국투자증권 양도세 신고
- katalon 사용법
- 피보나치함수
- bfs 미로탐색 java
- git 연동
- 피보나치 예제
- 주식 양도세 신고방법
- 최대공약수 예제
- katalon 자동화
- 재귀함수 예제
- Today
- Total
엄지월드
순환(Recursion)의 개념과 기본 예제1 본문
Tip ! 순환 함수를 학습할 때는 숫자를 직접 넣어서 스스로 시뮬레이션 해보는 게 이해가 빠르다.
public class Recursion_1 {
// 1. Recursion을 이용하여 "Hello" 문자를 n의 갯수 만큼 출력하는 방법
public static void main(String[] args) {
int n = 4;
func(n);
}
public static void func(int n) {
if (n <=0) {
return; // Base cas : 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다.
}
else {
System.out.println("Hello");
func(n-1); // Recursive case : recursion을 반복하다보면 결국 basecase로 수령해야 한다.
}
}
// 2. Recursion을 이용하여 1부터 n까지의 합을 구하여 출력하는 방법
public static void main(String args[]){
int result = func(4); // 숫자 입력
System.out.println(result); // 출력
}
public static int func(int n){ // 이 함수의 mission은 1부터 n까지의 합을 구하여 출력하는 것이다.
if(n==0)
return 0; // n=0이라면 합은 0이다.
else{
// System.out.println(n); // n이 어떻게 출력 되는 지 궁금하면 print 해보자!
return n+func(n-1); // n이 0보다 크다면 0에서 n까지의 합은 0에서 n-1까지의 합에 n을 더한 것이다.
}
// 3. 피보나치함수(fibonacci)를 구하는 방법 - 재귀
// 조건 : f(0) = 0, f(1) = 1
// 식 : f(n) = f(n-1) + f(n-2)
public int fibonacci(int n){
if(n<2) // f(0)과 f(1)은 0과 1으로 n에 값과 동일하게 정해져 있으므로 2이하이면 n을 리턴해준다.
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}
// 4. 최대공약수(gcd)를 구하는 방법 - 재귀
// 아래 소스가 정말 작동하는지 궁금증이 든다면, p와 q에 직접 숫자를 넣어서 진행해보자
// ex) p = 5, q = 2는 1이 리턴됨
// ex) p = 4, q = 2는 2가 리턴됨
public static int gcd(int p, int q){
if(q==0)
return p;
else
return gcd(q, p%q);
}
}
진행 중 질문이 있으면 댓글로 작성해주세요~
출처 - 인프런
'알고리즘' 카테고리의 다른 글
[백준] 2178 미로 탐색 (BFS) (0) | 2022.07.27 |
---|---|
기술면접 준비 (0) | 2022.07.08 |
그리디 알고리즘 (0) | 2022.06.28 |
팰린드롬 (0) | 2022.06.17 |
순환(Recursion)의 개념과 기본 예제2 (0) | 2018.09.16 |