공부하기/백준

[Java] 백준 풀기 1312 - 소수

XEV 2024. 3. 30. 23:09

자바 백준 1312번

실버 5

https://www.acmicpc.net/problem/1312

 

1312번: 소수

피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학

 

 

 

 

 

코드 풀이

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력
int A = sc.nextInt(); // 분자
int B = sc.nextInt(); // 분모
int N = sc.nextInt(); // 소숫점 아래 N번째 자리수
// 피제수 A를 제수 B로 나눈 뒤, N번째 자리수 구하기
int result = divideAndFindNthDecimal(A, B, N);
// 결과 출력
System.out.println(result);
}
// 분자를 분모로 나누어 소숫점 아래 N번째 자리수를 반환하는 메서드
private static int divideAndFindNthDecimal(int A, int B, int N) {
int quotient = A / B; // 몫 초기화
int remainder = A % B; // 나머지 초기화
// 소수점 아래 N번째 자리수까지 반복하여 계산
for (int i = 0; i < N; i++) {
remainder *= 10; // 나머지를 10배하여 다음 자리수로 이동
quotient = remainder / B; // 나누어진 몫 계산
remainder %= B; // 나눈 후의 나머지 업데이트
}
return quotient; // N번째 자리수 반환
}
}