코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] fibonacci = new int[N +1];
for (int i = 0; i < fibonacci.length; i++) {
if (i == 0) fibonacci[0] = 0;
else if (i == 1) fibonacci[1] = 1;
else fibonacci[i] = fibonacci[i -1] + fibonacci[i -2];
}
System.out.println(fibonacci[N]);
}
}
Java
복사
피보나치 수열의 점화식( )을 잘 기억하면 쉬운 문제인 것 같다. 위처럼 for문으로 정석적으로 풀어도 되고 아래처럼 점화식에 대입해서 깔끔하게 풀어도 될 것 같다.
다른 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
System.out.println(fibonacci(N));
}
static int fibonacci(int N) {
if (N == 0) return 0;
if (N == 1) return 1;
return fibonacci(N -1) + fibonacci(N -2);
}
}
Java
복사