// 피보나치
package Silver_III_3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;
public class Ex9711 {
public static void main(String[] args) throws IOException {
BigInteger[] sequence = new BigInteger[10001];
sequence[0] = BigInteger.ZERO;
sequence[1] = BigInteger.ONE;
for (int i = 2; i <= 10000; i++) {
sequence[i] = sequence[i - 2].add(sequence[i - 1]);
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int x = 1; x <= t; x++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int p = Integer.parseInt(st.nextToken()); // p번째 피보나치 숫자
long q = Long.parseLong(st.nextToken()); // p를 나누는 수
sb.append("Case #"+ x +": "+ sequence[p].mod(BigInteger.valueOf(q)) +"\n");
}
System.out.print(sb);
}
}
처음엔 배열을 long 타입으로 선언했지만 오버플로우가 발생해서 BigInteger로 변경했다.
'백준 풀이 > 자바(Java)' 카테고리의 다른 글
백준 10179 자바 - 쿠폰 (0) | 2024.04.04 |
---|---|
백준 16483 자바 - 접시 안의 원 (0) | 2024.04.03 |
백준 10178 자바 - 할로윈의 사탕 (0) | 2024.04.02 |
백준 9085 자바 - 더하기 (0) | 2024.04.01 |
백준 5361 자바 - 전투 드로이드 가격 (0) | 2024.03.31 |