알고리즘/기초구현|사고력수학
1312 소수 (백준)
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;
}