
피보나치 수를 구하는 문제
피보나치 수란 ? 첫째, 둘째 항이 1이고 그 뒤의 모든 항은 바로 앞 두 항의 합으로 이루어진 수열
알고리즘에서 재귀를 다룬 문제로 자주 등장!
import java.util.Scanner;
public class 피보나치_수_5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//몇 번째 피보나치 수인지
int n = sc.nextInt();
System.out.println(fibonacci(n));
}
public static int fibonacci(int n) {
//배열에 수열 저장
int[] fibo = new int[n + 1];
//만약 n이 0인 경우 0 리턴
if (n == 0) {
return 0;
//n이 1일 경우 1 리턴
} else if (n == 1) {
return 1;
}
//n이 2 이상일 경우 반복
for (int i=2; i<=n; i++) {
fibo[0] = 0;
fibo[1] = 1;
fibo[i] = fibo[i - 2] + fibo[i - 1];
}
return fibo[n];
}
}