알고리즘
배열.피보나치 수열
ultramancode
2023. 1. 12. 01:35
4. 피보나치 수열 (앞에 2개 더해서 뒤에 숫자 생김)
설명
1) 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.
2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.
입력
첫 줄에 총 항수 N(3<=N<=45)이 입력된다.
출력
첫 줄에 피보나치 수열을 출력합니다.
예시 입력 1
10
예시 출력 1
1 1 2 3 5 8 13 21 34 55
📌 0,1번째를 1을 주고 시작..? 배열 피보나치수열
import java.lang.reflect.Array;
import java.util.*;
import java.util.Scanner;
class Main {
public int[] solution(int n) {
int[] answer = new int[n];
answer[0] = 1;
answer[1] = 1;
/* i-2를 비교해야하니 2부터 시작하게하고 위에 [0],[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 sc = new Scanner(System.in);
int n = sc.nextInt();
for (int x : T.solution(n)) System.out.println(x + " ");
}
}
📌배열 안쓰고
import java.lang.reflect.Array;
import java.util.*;
import java.util.Scanner;
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+ " ");
//이제 다시 1 1 2 3 5 에서 한칸씩 뒤로 a자리에 b넣고 b자리에 c넣고
a=b;
b=c;
}
}
public static void main (String[]args){
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
T.solution(n);
}
}