1312번: 소수
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 | 128 MB | 8432 | 2518 | 2252 | 35.276% |
문제
피제수(분자) 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
정답
#include <iostream>
using namespace std;
int main()
{
int A, B, N, result;
// A, B, N 입력
cin >> A >> B >> N;
// N 번째 소숫점 까지 반복
while(N--) {
// A를 B로 나눠 몫을 구해 1자리 수로 만듦
A %= B;
// 1 이하일 경우 *10을 해서 소수점 몫만 출력
// 1 이상일 경우 다음 소수점 자리 출력을 위해 반복
A *= 10;
// A를 B로 나눈 값, 즉 정답
result = A / B;
}
cout << result << endl;
return 0;
}
문제 풀이
먼저 출력해야 하는 자리 수 N값 만큼 반복문을 돌린다.
while(N--)
먼저 A를 B로 나누고 몫을 구한다.
N번째 리턴하고 마지막 반복에서 몫이 1 이하일 경우 * 10을하여 1이상 값으로 만든 후 최종적으로 몫만 구한다.
마지막 몫인 result값만 리턴하면 정답이다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon] C/C++ 2164번 - 카드2 (Silver 4) (0) | 2022.12.06 |
---|---|
[Baekjoon] C++ 18258번 - 큐2 (Silver 4) (0) | 2022.12.05 |
[Baekjoon] C++ 1920번 - 수 찾기 (Silver 4) (0) | 2022.12.05 |
[Baekjoon] C++ 1181번 - 단어 정렬 (Silver 5) (0) | 2022.12.01 |
[Baekjoon] C++ 1312번 - 수 정렬하기 2 (Silver 5) (0) | 2022.11.21 |