알고리즘/백준
[java] 백준 2748번 피보나치 수 2
펄찌
2021. 8. 8. 10:14
먼저 문제를 보기 전 어제 풀었던 피보나치 수 문제와 같은 문제다. 단지 범위가 커진 것 뿐...
[java] 백준 2747번 피보나치 수
문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.." data-og-host="begin-dev-awos...
begin-dev-awos.tistory.com
피보나치 수(2747번) 문제와 동일하기 때문에 코드에 대한 설명은 하지않고 어떤 점이 달라지는지를 설명하도록 하겠다.
간단하게 2747번 문제라고 하겠다. 2747번 문제 같은 경우 int형의 범위 안에서 결과값이 나올 수 있었는데...
이번 문제 같은 경우 2747번에 입력을 90으로 넣는 순간 -숫자 이런식으로 나오게 된다.
이유는 int형의 양의 범위를 초과하게 되면 마이너스로 표현이 된다.
그래서 int형보다 범위가 큰 long을 쓰면 된다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(recur(n));
}
public static long recur(int n) {
long[] arr = new long[91];
arr[0] = 0;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
return arr[n];
}
}
반응형