[Section 1] 피보나치 수열 프로그램

JEREGIM·2023년 2월 24일
0

📌프로그램 로직

출력할 수열의 개수를 사용자 입력으로 받는 메서드

public class Fibonacci {
    //원하는 수열의 개수를 사용자 입력으로 받고 
    //개수만큼의 크기를 가진 fibonacci 배열을 인스턴스 변수로 생성
    int[] fibonacci = new int[getUserInput()];
    
	public static int getUserInput() {
		System.out.println("원하는 수열의 개수를 입력하세요.");
    	Scanner sc = new Scanner(System.in);
    	return sc.nextInt();
	}
}
  • getUserInput() 메서드로 수열의 개수를 입력 받고 개수 크기만큼의 fibonacci 배열을 인스턴스 변수로 생성한다.

입력된 수 만큼 피보나치 배열을 저장

    public void getFibonacci() {
        int fibonacci0 = 1;
        int fibonacci1 = 1;
        fibonacci[0] = fibonacci0;
        fibonacci[1] = fibonacci1;
        for (int i = 2; i < fibonacci.length; i++) {
            fibonacci[i] = fibonacci[i-2] + fibonacci[i-1];
        }
    }

저장된 피보나치 배열 출력

    //fibonacci 배열을 출력하는 메서드
    public void printNumbers() {
        System.out.println("[피보나치 수열 출력]");
        for (int i : fibonacci) {
            System.out.println(i);
        }
    }

📌실행 예시


📌피보나치 수열을 재귀 함수를 통해 저장

public class Fibonacci {
	int count = 0; // 인스턴스 변수로 지정
    
    public void getFibonacci() {
        int fibonacci0 = 1;
        int fibonacci1 = 1;
        fibonacci[0] = fibonacci0;
        fibonacci[1] = fibonacci1;

        //재귀함수로 피보나치 수열 저장
        if(count + 2 == fibonacci.length) return;
        fibonacci[count + 2] = fibonacci[count] + fibonacci[count + 1];
        count++;
        getFibonacci();
    }
}
  • if(count + 2 == fibonacci.length) return;를 통해 재귀 함수가 무한 루프에 빠지는 것을 방지

0개의 댓글