본문 바로가기

BackEnd/Java

[JAVA] 조건문, 반복문을 이용한 문제 풀이 6(피보나치 수)

728x90
반응형

 

목차

                                                                                                                           

1. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 1(윤년 계산기)

2. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 2(주사위 게임)

3. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 3(배수 판별기)

4. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 4(청구 금액 계산기)

5. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 5(다독왕)

6. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 6(피보나치 수)

7. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 7(출입증)

8. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 8(방정식)

9. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 9(숫자 맞추기 게임)

10. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 10(만원의 행복)

11. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 11(은행)

                                                                                                                           

 

 

자바의 조건문, 반복문을 이용한 문제 풀이를 진행해보겠습니다~

 

 

문제 6) 피보나치 수
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다.
그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.
n=17일때 까지 피보나치 수를 써보면 다음과 같다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

입력 n이 들어오면, n번째 피보나치 수를 출력하는 프로그램을 작성하시오.

 

 

👉 출력방법

1. 숫자를 입력하시오 → [숫자 입력]
2. n번째 피보나치 수를 출력한다

 

 

👉  문제 풀이를 위한 Flow Chart

 


👉  문제 해답 코드

import java.util.Scanner;

public class Fibonacci {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("피보나치 반복 횟수는 : ");
		int n = sc.nextInt();
		
		int firstNum = 0;
		int secondNum = 1;
		int fibonachi = (n==1) ? 1 : 0;
		
		for(int i=1; i<n; i++) {
			fibonachi = firstNum + secondNum;
			
			firstNum = secondNum;
			secondNum = fibonachi;
		}
		
		System.out.println(n + "번째 수는 " + fibonachi);
		
		sc.close();
	}
}

 

 

👉  코드 해설

1. 입력을 위한 java.util의 Scanner 클래스를 가져온다.
2. 인스턴스 생성 후 양의 정수를 입력받고 변수 n에 저장한다.
3. 변수를 3개 선언한다. (0번째 수, 1번째 수, n번째 피보나치 수)
4. 반복문을 통해 n번째까지 값이 더해지도록 반복한다.
 a) 이때, n-1, n-2번째 수를 변수에 각각 저장한 후 for문이 반복될 때, 해당 값이 더해지도록 만든다.
  ex) 3번째 수 : 2 = 1+1, 10번째 수 : 21 + 34
5. n번째 수를 출력한다.

 

 

문제 풀이 시 for문을 이용하였고, 변수를 3개 선언해 피보나치 수를 저장하고 계산할 수 있도록 하였습니다.

재귀를 이용하여 풀이할 수 있지만 현재는 for문으로만 문제 풀이하도록 하겠습니다~!!

 

혹시나 코드를 보고 좀 더 간단하게 풀이하실 수 있는 분들은 답글 부탁드려요!!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형