2017 Java Chapter 13 (Week 13)

From: 2017-09-01 00:00:00 To: 2017-12-25 23:59:59 Now: 2024-11-23 17:07:13 Status: Public

D - 유리수 클래스2

Time Limit: 1s Memory Limit: 128MB

Snippet Judge Submissions: 512 Solved: 277
Description

사용자가 실수를 입력하면 분수로 바꿔주는 프로그램을 작성하시오.

힌트 : 실수를 string으로 읽을 때, 정수부분과 소수부분으로 나누고 Rational 클래스의 BigInteger를 사용해서 소수를 유리수 형식(a/b)으로 쓰세요.

(Convert decimals to fractions) Write a program that prompts the user to enter a decimal number and displays the number in a fraction. Hint: read the decimal number as a string, extract the integer part and fractional part from the string, and use the BigInteger implementation of the Rational class in Programming Exercise 13.15 to obtain a rational number for the decimal number. 

Input

* Line 1 : 테스트케이스의 개수 N

* Line 2 ~ N+1 : 각 케이스 별 소수점 숫자 a b

Output

* Line 1 ~ 4N : 각 테스트 케이스마다 다음과 같이 4줄씩 출력

- Line 1 : a + b = 결과 

- Line 2 : a - b = 결과 

- Line 3 : a * b = 결과

- Line 4 : a / b = 결과

- 모든 숫자는 분수형태의 유리수

Sample Code
import java.math.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int T = sc.nextInt();
        for (int t = 0; t < T; t++) {
            Rational r1 = Rational.getFraction(sc.next());
            Rational r2 = Rational.getFraction(sc.next());

            System.out.println(r1 + " + " + r2 + " = " + r1.add(r2));
            System.out.println(r1 + " - " + r2 + " = " + r1.subtract(r2));
            System.out.println(r1 + " * " + r2 + " = " + r1.multiply(r2));
            System.out.println(r1 + " / " + r2 + " = " + r1.divide(r2));
        }
    }
}

YOUR_CODE
Sample Input
2
3.25 -3
-1.0 -9
Sample Output
13/4 + -3 = 1/4
13/4 - -3 = 25/4
13/4 * -3 = -39/4
13/4 / -3 = -13/12
-1 + -9 = -10
-1 - -9 = 8
-1 * -9 = 9
-1 / -9 = 1/9
Source

JAVA2015 PE13.19