본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:10,재귀,JAVA)10870번, 피보나치 수 5

by 열정적인 이찬형 2022. 1. 7.

문제 링크

10870번: 피보나치 수 5
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력 값을 받았습니다.
  • 피보나치 수를 구하는fibonacci함수를 만들었습니다.
  • 재귀를 통해서 fibonacci함수를 반복하여 피보나치 값을 구하여 배열에 저장하여 반환하였습니다.
  • bw에 함수 결과를 저장하였습니다.
  • BufferedWriter를 통해 저장된 결과를 출력하였습니다.

결과 코드

import java.io.*;
public class Main{
	public static void main(String[] args) throws IOException{
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //BufferedReader를 통해 입력 값 받기
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
       	//BufferedWriter를 통해 결과 출력
    	int num = Integer.parseInt(br.readLine())+1;	//숫자 입력 받기
    	int[] arr = new int[21];	//피보나치 값 들어갈 배열 초기화
    	arr[1] = 1;	//1번째 값 1로 초기화
    	arr = fibonacci(arr,num,2);	//피보나치 함수 결과 받기
    	bw.write(arr[num-1] + "\n");	//결과 bw에 저장
    	bw.flush();	//결과 출력
    	bw.close();
    	br.close();	
	}
	public static int[] fibonacci(int[] arr, int size, int current) {	//피포나치 함수
		if(current>=size)
			return arr;
		else {	//재귀 실행
			arr[current] = arr[current-1] + arr[current-2];
			return fibonacci(arr,size,current+1);
		}
	}
}

댓글