Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 Array Q04_피보나치 수열 본문
728x90
설명
1) 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.
2) 입력은 피보나치 수열의 총 항의 수이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.
입력
첫 줄에 총 항수 N(3<=N<=45)이 입력된다.
출력
첫 줄에 피보나치수열을 출력합니다.
예시 입력1
예시 출력10 1 1 2 3 5 8 13 21 34 55
코드
해설 코드
import java.util.*; class Main { public int[] solution(int n){ int[] answer=new int[n]; answer[0]=1; answer[1]=1; for(int i=2; i<n; i++){ answer[i]=answer[i-2]+answer[i-1]; } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); int n=kb.nextInt(); for(int x :T.solution(n)) System.out.print(x+" "); } }
import java.util.*; class Main { public void solution(int n){ int a=1, b=1, c; System.out.print(a+" "+b+" "); for(int i=2; i<n; i++){ c=a+b; System.out.print(c+" "); a=b; b=c; } } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); int n=kb.nextInt(); T.solution(n); } }
풀이 및 정리
피보나치 수열이란?
=> 앞의 2개의 수를 합하여 다음 숫자가 되는 수열
ex) 1, 1, 2, 3, 5, 8, 13, 21, 34
첫 번째 해설 코드는 int[]의 0번째, 1번째 인덱스에 1의 값으로 초기화시켜준다.
그리고 반복문을 작성하고 int[]배열의 answer[i]번째 값에는 answer[i-1]+answer[i-2]을 구해 대입시켜준다.
만약 배열을 사용하지 않는다면 두 번째 해설 코드를 사용할 수 있다.
a, b, c 세 개의 변수를 선언하고 a=1, b=1로 초기화시켜준다.
반복문을 작성한 뒤 c=a+b; 값을 출력하고
a에는 b값을 대입하고 b에는 c값을 대입시켜주고 다시 반복문이 진행된다.
i = 2 i = 3 i = 4 i = 5 ... a 1 1 2 3 ... b 1 2 3 5 ... c 2 3 5 8 ...
728x90
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 Array Q06_뒤집은 소수 (0) | 2022.02.13 |
---|---|
자바 알고리즘 문제 풀이 Array Q05_소수(에라토스테네스 체) (0) | 2022.02.12 |
자바 알고리즘 문제 풀이 Array Q03_가위 바위 보 (0) | 2022.02.09 |
자바 알고리즘 문제 풀이 Array Q02_보이는 학생 (0) | 2022.02.09 |
자바 알고리즘 문제 풀이 Array Q01_큰 수 출력하기 (0) | 2022.02.07 |
Comments