알고리즘/문제 풀이
백준 15792번: A/B - 2
Themion
2022. 1. 12. 15:27
https://www.acmicpc.net/problem/15792
15792번: A/B - 2
첫째 줄에 A와 B가 주어진다. (0 < A, B ≤ 10,000)
www.acmicpc.net
A와 B를 입력받아 A / B를 출력하되, 손으로 소수점 나눗셈 계산을 하듯이 소숫점 계산을 진행한다.
#include <cstdio>
int main() {
// A, B: 두 수 A와 B를 저장할 공간, i: 소수점 연산에 사용할 변수
int A, B, i = 0;
scanf("%d %d", &A, &B);
// 소수점 앞의 정수 부분을 출력한다
printf("%d", A / B);
// A % B가 0이 아니라면, 즉 A / B의 결과가 정수가 아니라면
if (A % B) {
// A를 B로 나눈 나머지를 A에 저장한다
A %= B;
// 소숫점이 필요하므로 소숫점을 출력한다
printf(".");
}
// 나눠야 할 부분이 아직 남아있고
// 아직 소숫점 아래 1천자리까지 계산하지 않았다면
while ((A % B) && (i++ < 1000)) {
// 자릿수를 한 칸 올려주고
A *= 10;
// A를 B로 나눈 몪을 출력한 뒤
printf("%d", A / B);
// 나머지 계산을 이어가기 위해 A를 B로 나눈 나머지를 A에 저장한다
if (A >= B) A %= B;
}
return 0;
}