-
[java] 피보나치 수열알고리즘 2023. 3. 22. 16:30
1. 반복문
public int solution(int n) { int answer =0; int[] f = new int[n+1]; f[0]=0; f[1]=1; for(int i=2; i<=n; i++){ f[i]=f[i-1]+f[i-2]; } return f[n]; }
2. 재귀
public int recursive(int n) { if(n==1 || n==0) return n; else return recursive(n-1)+recursive(n-2); }
관련 문제
백준 피보나치 수
https://www.acmicpc.net/problem/2747
2747번: 피보나치 수
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
import java.util.*; public class Main { public int solution(int n) { int answer =0; int[] f = new int[n+1]; f[0]=0; f[1]=1; for(int i=2; i<=n; i++){ f[i]=f[i-1]+f[i-2]; } return f[n]; } public int recursive(int n) { if(n==1 || n==0) return n; else return recursive(n-1)+recursive(n-2); } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int str = sc.nextInt(); System.out.println(T.recursive(str)); }}
'알고리즘' 카테고리의 다른 글
[java] 백준 2979 트럭주차 (0) 2023.03.23 [java] ArrayList to Array , ArrayList to Array (0) 2023.03.22 [java] 이분검색 (0) 2023.03.21 [프로그래머스/java] level1 나누어 떨어지는 배열 (0) 2022.09.30 [프로그래머스/java] level1 하샤드수 (0) 2022.09.30