※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 11368번 문제인 A Serious Reading Problem이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/11368
11368번: A Serious Reading Problem
Gandalf’s search for the history of the One Ring took him to the library of Minas Babel, under the care of Archivist Borges. This library contains every possible book - true and false, nonsensical and insightful - and Gandalf must use all of this wisdom
www.acmicpc.net
C, W, L, P가 주어질 때 나올 수 있는 책의 가짓수는 C^(W*L*P)와 같다.
답의 범위가 int 범위 내라고 가정하고 문제를 풀면, C가 1인 경우를 제외하고 위의 식을 반복문을 이용하여 직접 계산하는 것으로 문제를 해결할 수 있다.
C가 1이라면 반복횟수가 10억이 넘는 케이스도 int 범위 내에서 가능하므로 예외처리를 해주자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int C, W, L, P;
while (cin >> C >> W >> L >> P) {
if (C == 0) break;
if (C == 1) cout << 1 << '\n';
else {
int ans = 1;
int rep = W * L * P;
while (rep--) ans *= C;
cout << ans << '\n';
}
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 15726 // C++] 이칙연산 (0) | 2022.06.26 |
---|---|
[BOJ 14728 // C++] 벼락치기 (0) | 2022.06.26 |
[BOJ 15725 // C++] 다항함수의 미분 (0) | 2022.06.26 |
[BOJ 15735 // C++] 삼각 (0) | 2022.06.26 |
[BOJ 15736 // C++] 청기 백기 (0) | 2022.06.25 |