반응형

https://www.codetree.ai/missions/4/problems/a-divide-b/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

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();

        System.out.print(a / b + ".");
        
        a %= b;
        for(int i = 0; i < 20; i++) {
            a *= 10;
            System.out.print(a / b);
            a %= b;
        }
    }
}

 

설명

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();

        System.out.print(a / b + ".");

- 여기까지는 a를 b로 나눈 몫을 계산하고 소수점을 붙여 출력한다.

- 예를 들어, a가 5이고 b가 2라면 "2."가 출력된다.

 

        a %= b;
        
        for(int i = 0; i < 20; i++) {
            a *= 10;
            System.out.print(a / b);
            a %= b;
        }
    }
}

- 이 부분은 소수점 이하 자릿수를 계산한다.

 

1. a %= bab로 나눈 나머지를 계산합니다. 예를 들어, a가 5이고 b가 2라면 나머지는 1이 됩니다.

2. for 루프는 20번 반복됩니다. 이 루프는 소수점 이하 20자리까지 계산하는 역할을 합니다.

  • 각 반복에서 a10을 곱합니다. 이때의 a는 이전 단계에서 a % b로 남은 나머지입니다.

  • 곱한 값 a를 다시 b로 나누어 몫을 구하고, 이를 출력합니다.

  • 다시 a %= b를 통해 나머지를 계산하고, 이 과정을 반복합니다.

 

예를 들어, a가 1이고 b가 2인 경우를 봅시다:

 

첫 번째 반복: a = 1 * 10 = 10, 10 / 2 = 5, a = 10 % 2 = 0

이후 a가 0이 되므로 다음 반복에서는 항상 0을 출력합니다.

반응형

+ Recent posts