rectified 2025. 2. 25. 17:45

 

뭔 생각이 부족해서 못 풀었는가?

소숫점을 한자리씩 뽑아내고 다음소숫점을 찾는다는 알고리즘 생각 못해냄

나머지를 구해놓고 계속 10을 곱해주며

digit은 나머지 / b함으로써 소숫점을 한자리씩 뽑고

나머지 %= b 함으로써 뽑은 소숫점을 한자리씩 옮김

 

뭘 실수해서 틀린건가?

실수는 없고, 모르고, 기억해야 한다.

 

그래서 뭘 기억하면 되나?

소수 자체를 구하는 알고리즘, 그리고 소숫점 옮기는 방법.

 

코드

#include <iostream>

using namespace std;

int main(){
    cin.tie(0) -> sync_with_stdio(0); 
    int a, b, n;
    cin >> a >> b >> n;

    int remain = a % b;
    
    for (int i = 0; i < n; i++) {
        
        remain *= 10;     
        int digit = remain / b; //소수점 한자리씩 뽑아냄
        remain %= b; //다음 소숫점 찾음 

        if (i == n - 1) {     
            cout << digit << '\n';
        }
    }

    return 0;        

}