728x90
반응형
4. 피보나치 수열
설명
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
- 배열 이용
- 재귀함수 이용
- 메모이제이션 이용
https://and-some.tistory.com/631
import java.util.*;
public 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-1]+answer[i-2];
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb=new Scanner(System.in);
int n = kb.nextInt()-1;
for(int x:T.solution(n)) System.out.print(x+" ");
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
arr[0]=1;
arr[1]=1;
System.out.print(arr[0]+" ");
for(int i=1;i<n;i++){
if(i!=n-1){
arr[i+1]=arr[i]+arr[i-1];
System.out.print(arr[i]+" ");
}
else
System.out.print(arr[i]);
}
}
}
+) 세련된 풀이
import java.util.Scanner;
public class Main {
//피보나치 수열
//앞의 2개의 수를 합해 다음 숫자가 되는 수열
//항의 수: N 입력
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
for(int x : solution(n)) {
System.out.print(x+" ");
}
kb.close();
}
static int[] solution(int n) {
//1.ds
int [] answer = new int[n];
answer[0]=1;
answer[1]=1;
//2.for,while
for(int i=2;i<n;i++) {
answer[i]=answer[i-1]+answer[i-2];
}
return answer;
}
}
+) 세련된 풀이2
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);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int[] arr = new int[n];
arr[0]=1;
arr[1]=1;
arr[2]=2;
for(int i=3;i<n;i++){
arr[i]=arr[i-2]+arr[i-1];
}
for(int x: arr) System.out.print(x+" ");
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.02 - Array] 06. 뒤집은 소수 (+ 숫자 뒤집기 : while, %10, /10) (0) | 2022.05.18 |
---|---|
[Ch.02 - Array] 05. 소수(에라토스테네스 체) # (0) | 2022.05.18 |
[Ch.02 - Array] 03. 가위 바위 보 (0) | 2022.05.17 |
[Ch.02 - Array] 02. 보이는 학생 (0) | 2022.05.17 |
[Ch.02 - Array] 01. 큰 수 출력하기 (0) | 2022.05.17 |