https://www.acmicpc.net/problem/1312
학교 java 수업 진도초반은 너무 쉬워서 그냥 제끼고 백준 푸는중.
처음엔 그냥 나누려다가 숫자가 너무 커지면 소숫점 정확도가 떨어지기 때문에
문제에선 해당 원하는 자릿수만을 원하기에 그냥 하나씩 반복문을 돌려가며 찾는 것으로 결정했다.
보통 우리가 나눗셈을 할때 어떻게 나누는지 생각해보면 쉽게 풀린다.
나눗셈을 하고
1. 나머지에 *10을 하고
2. B와 나누고 그 몫이 어떤 자리의 소숫점에 해당하고
3. 다시 나머지를 B와 나눈 걸로 초기화해준다
이 3과정을 반복하면 원하는 자릿수가 나온다.
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int A, B, N;
cin >> A >> B >> N;
int remain = A % B;
int i = 0;
int result = 0;
while (i < N)
{
remain *= 10;
result = remain / B;
remain = remain % B;
i++;
}
cout << result;
return 0;
}
'백준 문제풀이 > 실버5' 카테고리의 다른 글
10815번 - 숫자 카드 (0) | 2022.06.08 |
---|---|
백준 2941번 - 크로아티아 알파벳 (0) | 2022.05.28 |
백준 11651번 - 좌표 정렬하기 2 (0) | 2022.02.15 |
백준 7568번 - 덩치 (0) | 2022.02.15 |
백준 1476번 - 날짜 계산 (0) | 2022.01.16 |