Algorithm/풀었던문제
알고리즘 기초 - 2 (파보나치 수열 출력)
dlgkstjq12
2019. 12. 3. 14:26
파보나치 수열은 뒤에 있던 수가 앞의 수가 되고, 앞의 수와 뒤의 수를 더한 값이 뒤의 수가 된다.
첫번째항 = 1
두번째항 = 1
세번째항 = 첫번째항(1) + 두번째항(1) = 2
네번째항 = 두번째항(1) + 세번째항(2) = 3
.......
ex) 1 1 2 3 5 8 13 .....
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | package Problem2; import java.util.Scanner; public class Main { public static void main(String[] args) { //파보나치 수열 : 앞에 두수의 합이 세번째 항의 숫자가 된다. //0과 1로 주로 시작하며, 뒤에 있던 수가 앞의 수가 되고, 앞의 수와 뒤의 수를 더한 값이 뒤의 수가 된다. Scanner scan = new Scanner(System.in); int a = 1, b = 1, temp; int i; System.out.println("몇번째 항까지 출력할까요??"); i = scan.nextInt(); for(; i>=1; i--) { System.out.print(a+" "); temp = a+b; a = b; b = temp; } System.out.println(); System.out.println(); System.out.println("배열을 사용하는 방법"); //2번째 방법 (배열을 사용하는 방법) //3번째 항부터 공식 (arr[j] = arr[j-1] + arr[j-2];) 이 적용되기 때문에 //1항과 2항에는 값을 1로 초기화 해주어야 한다. int []arr = new int[100]; arr[1] = 1; arr[2] = 1; for (int j = 3; j < 10; j++) { arr[j] = arr[j-1] + arr[j-2]; } for (int j = 1; j < 10; j++) { System.out.print(arr[j]+" "); } } } | cs |
출력 결과
출처
https://www.youtube.com/watch?v=WpzjpKt0lbc&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=3