안녕하세요. 오늘은 수를 나눌 거예요.

문제

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

아이디어

문제에 나온 그대로 구현해주면 됩니다.
진법 변환은 스택을 사용해서 해주면 됩니다.

소스코드

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

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, K, i, sum = 0, num = 0;
    stack<ll> s;

    cin >> N >> K;
    while (N)
    {
        s.push(N % K);
        N /= K;
    }
    while (s.size())
    {
        if (s.top() == 0)
        {
            sum += num;
            num = 0;
        }
        else
        {
            num *= 10;
            num += s.top();
        }
        s.pop();
    }
    sum += num;

    N = sum;
    while (N)
    {
        s.push(N % K);
        N /= K;
    }
    while (s.size())
    {
        cout << s.top();
        s.pop();
    }
}


감사합니다.

0개의 댓글