피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
첫 번째 줄에 A와 B(1≤A, B≤100,000), N(1≤N≤1,000,000)이 공백을 경계로 주어진다.
A÷B를 했을 때, 소숫점 아래 N번째 수를 출력한다.
// 예제 입력 1
25 7 5
// 예제 출력 1
2
알고리즘
나눗셈에서 소숫점 자리까지 구하는 방법은 나머지 부분에 10을 곱해 계속 나눗셈을 해주면서 몫을 구하는 것이다.
ex. 25 / 7의 경우
1. 몫은 3, 나머지는 4이므로 3.XXX
2. 나머지인 4에 10을 곱한 값 40을 7로 또 나누어주면 몫은 5, 나머지는 5이므로 3.5XX
3. 나머지인 5에 10을 곱한 값 50을 7로 또 나누어주면 몫은 7, 나머지는 1이므로 3.57X
4. 이런식으로 계속 반복해서 구할 수 있다.
- 이 방법을 적용하여 소수점 아래 N번째 위치인지 확인하고 그 위치가 맞다면 몫을 출력, 아니라면 위치는 증가시켜주고 나머지에 10을 곱해 나눗셈을 또 수행한다.
#include <iostream>
using namespace std;
int main(void) {
int A, B, N;
int remain, cnt = 1;
cin >> A >> B >> N;
remain = A % B;
while (1) {
remain *= 10;
if (cnt == N) {
cout << remain / B;
break;
}
cnt++;
remain %= B;
}
}