자릿수 (백준 28293)

코딩생활·2024년 1월 28일
0

백준문제풀이

목록 보기
199/308

안녕하세요. 오늘은 자릿수를 세어볼 거예요.

문제

https://www.acmicpc.net/problem/28293

아이디어

a^b이 n자리 수이면 10^(n-1)<=a^b<10^n을 만족합니다. 이때 모든 항에 상용로그를 취해주면 n-1<=b log a < n이 됩니다. 이때 n-1은 b log a의 정수부분, n은 b log a의 정수부분 +1이므로 b log a의 정수부분 +1을 출력해주면 됩니다.

소스코드

#include <iostream>
#include <cmath>
#define ll long long
using namespace std;


int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    double a, b;

    cin >> a >> b;
    double x = b * log10(a);
    cout << (ll)(x)+1;
}


감사합니다.

0개의 댓글