본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1855 : 재귀로 n번째 피보나치 수 리턴하기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1855 : [기초-재귀함수] 재귀로 n번째 피보나치 수 리턴하기 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

.int 형 정수(n) 1개가 입력된다.
(1 <= n <= 30)

출력

n 번째 피보나치 수를 출력한다.

예시

  • 입력 : 6
  • 출력 : 8

Solution (풀이)

  • 풀이 : 메모리 11172, 시간 : 70
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        // 해당 자리, 몇 번째, 이전 값, 이후 값
        loop(0, count, 1, 2);
    }

    public static void loop(int index, int count, int bef, int aft) {
        if (count==1 || count==2) { // 1,2 中 한가지 숫자가 들어왔을 때에는 그냥 1 출력(피보나치 수열)
            System.out.println(1);
            return;
        }

        if (index+4>=count) {
            System.out.println(bef+aft);
        } else {
            loop(index+1, count, aft, bef+aft);
        }

    }

}

Ranking(순위)

반응형