@21.04.09
JAVA
@재귀함수 - 피보나치 수열
우선 피보나치 수열이란 위의 그림을 통해 설명할 수 있다. 보는것과 같이 하나의 값을 구하기 위해 뒤의 2개의 값을 더하는 작업을 수행하는게 피보나치 수열이다. ==> An = An-1 + An-2
아래는 피보나치 수열을 자바 코드로 구현한 결과이다.
public static int fibo(int n) {
int[] n_l = new int[n];
for(int i=0;i<n;i++) {
if(i<2) {
n_l[i]=1;
}else{
n_l[i]=n_l[i-1]+n_l[i-2];}
}return n_l[n-1];}
우선 하나의 메소드로 만들었다. 구현 동작은
- 내가 보고싶은 피보나치 수열의 항 인덱스를 입력한다. ( fibo( 1 ) 은 첫번째 항. )
- 시작과 동시에 입력받은 n의 값의 크기를 갖고이는 int 배열을 하나 만든다.
- for문을 돌림에 있어 반복문 변수 i는 0부터 시작하며 n보다 작을 때까지 진행된다.
- 반복문 변수 i가 2보다 작을 때는 1의 값을 갖는다. ( 그림을 보면 1,2번째 항은 1이다. )
- 그외의 경우는 전의 2개의 값을 더해서 새로운 값을 구한다.
여기까지가 내가 푼 피보나치 수열이다.
%재귀함수로 풀기
public static int fibo(int n) {
// 재귀함수 -> 메소드가 본인 메소드를 다시 부르는 기법
if(n<=2) {
return 1;
}else {
return fibo(n-2)+fibo(n-1);}}
징짜 놀랍도록 간단하다;;.
좀 뜯어보면
- fibo라는 Method가 2와 같거나 작은 수를 받으면 1을 반환한다.
- 그 외의 값을 입력 받으면 fibo Method를 각각 2,1만큼 작은 값을 대입하고 호출하여 더한 값을 반환한다.
- 예로 3을 입력 받으면 fibo Method가 1,2를 입력 받았을 때를 더하여 반환하며
- 5를 입력 받았다하면 3과 4를.. 3과 4는 각각 1/2 , 2/3을 입력했을 때의 fibo Method를 다시 반환한다.
이러한 동작으로 실행된다. 피보나치 수열을 재귀함수의 가장 기본적인 형태라고 한다.
@Method OverLoading( 오버로딩 )
Method OverLoading ( Method 중복 정의) => Method의 이름이 동일한데, 매개변수의 갯수와 타입만 다르게해서 메소드를 중복으로 정의하는 방법.
이게 무슨 말인지 아래의 사진을 통해 확인하자
위와 같이 printName이란 동일한 이름을 갖는 Method에 매겨변수의 갯수만 다르게 하여 Method를 2개 생성하였다.
이와 같은 사항에 대해 얘를 들어보자면
이렇게 볼 수 있다. 이클립스 내에서 ctrl + space 통해 자동완성 기능으로 사용가능 명령어들을 보면
- 초록색 원이 Method라는 뜻이다.
- 명령어 가로 안이 매개변수로서 대입 가능한 매개변수이다.
- 콜론 옆의 값은 해당 Method가 Return하는 값으로, void는 Return이 없는 함수를 말한다.
이렇게 볼 수 있다. 무튼, 저렇게 같은 print라는 명령어이지만 대입해야하는 매개변수가 다름이 Method OverLoading이다.
#자바 기능 < PARSE > - 문자형을 정수형으로
String형 Data s 가 있다. parseInt( ) 는 문자형 Data를 Int형으로 변환해주는 기능을 가진 명령어이다.
'국비교육기관 > 수업' 카테고리의 다른 글
23일차_자바_ArrayList_MVC (0) | 2021.04.14 |
---|---|
22일차_자바_OOP (0) | 2021.04.13 |
19일차_자바기초_이차원배열_메소드_정렬 (0) | 2021.04.08 |
18일차_자바_2차원 배열 (0) | 2021.04.07 |
17일차_자바기초_이중for문 / 웹크롤링 Test (0) | 2021.04.06 |
댓글