문제링크 : https://www.acmicpc.net/problem/1312
1312번: 소수
피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
int A, B, N, result;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> A >> B >> N;
while(N--) //N번만큼 반복
{
A%=B; //나머지 저장
A*=10; //나누기 연산을 위해 10곱해줌
result = A/B; //소숫점 저장
}
cout << result;
return 0;
}
실제 나눗셈 과정을 코드로 옮긴듯한 문제이다.
나눗셈 연산에서 나누고 나눈 나머지에 대해 10을 곱하고 또 나눗셈을 이어 나가기에 이를 코드로 구현해준다.
7/25
-> 몫 3
나머지 4 (A%B)
7/4*10 (A*10)
-> 몫 5 (A/B)
나머지 5
7/5*10
-> 몫 7, 나머지 1
7/1*10
-> 몫 1, 나머지 3
7/3*10
-> 몫 4, 나머지 2
7/2*10
->몫 2 (N번쨰 A/B)
'백준 > 실버' 카테고리의 다른 글
[백준 17427번] 약수의 합 2 (C++) (0) | 2024.01.26 |
---|---|
[백준 2688번] 줄어들지 않아 (C++) (0) | 2024.01.25 |
[백준 1769번] 3의 배수 (C++) (0) | 2024.01.23 |
[백준 1747번] 소수&팰린드롬 (C++) (0) | 2024.01.21 |
[백준 17212번] 달나라 토끼를 위한 구매대금 지불 도우미 (C++) (0) | 2024.01.16 |