공부하기/백준

[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번째 자리수 반환
    }
}