반응형
문제
문제 설명
n의 증가로 타일 개수를 세어 봤을 때의 표이다.
* n = 1 | 1 |
* n = 2 | 2 |
* n = 3 | 3 |
* n = 4 | 5 |
* n = 5 | 8 |
* n = 6 | 13 |
* n = 7 | 21 |
* n = 8 | 34 |
* n = 9 | 55 |
* n = 10 | 89 |
* n = 11 | 144 |
* n = 12 | 233 |
* n = 13 | 377 |
* n = 14 | 610 |
n = n-1 + n-2
구조를 띠고 있다.- 앞에서 풀었던 피보나치 수와 비슷하게 풀면 된다.
- 단, 주의할 것은
15746
을 나눈 나머지 값으로 저장하면서 for문을 돌아야 한다는 것이다.
성공 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.close();
System.out.print(binary(n));
}
public static long binary(int n) {
long nums[] = new long[n+1];
for (int i = 1; i <= n; i++) {
nums[i] = (i <= 2)? i : nums[i-1]+nums[i-2];
nums[i] %= 15746;
}
return nums[n];
}
}
반응형