티스토리 뷰
문제링크 : https://www.acmicpc.net/problem/28293
28293번: 자릿수
첫째 줄에 정수 $a$, $b$가 공백으로 구분되어 주어진다. $(1 \le a \le 10\,000; 1 \le b \le 10\,000\,000)$ $a^b$의 자릿수가 $10\,000$ 또는 $9,999$로 시작하지 않는 입력만 주어진다.
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int a, b;
cin >> a >> b;
ll result = log10(a) * b; //상용로그 이용
cout << result+1;
return 0;
}
상용로그를 활용한 문제이다.
우리가 구하고자하는 값은 log10a^b이다.
근데 이는 b * long10a와 같은 값이며 1자리가 모자라게 나오기에 여기에 1을 더해준다.
'Problem Solving > 백준' 카테고리의 다른 글
| [백준 11054번] 가장 긴 바이토닉 부분 수열 (C++) (0) | 2023.08.15 |
|---|---|
| [백준 14502번] 연구소 (C++) (0) | 2023.08.14 |
| [백준 15686번] 치킨 배달 (C++) (0) | 2023.08.12 |
| [백준 10830번] 행렬 제곱 (C++) (0) | 2023.08.11 |
| [백준 2206번] 벽 부수고 이동하기 (C++) (0) | 2023.08.10 |
