본문 바로가기
공부/백준

백준 - 입출력과 사칙연산 / 1008 나눗셈 문제

by 라이티아 2025. 6. 28.

문제

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.

 

 

이전 문제와 같다고 생각하는데 다를까?

 

 

라고 생각했는데 문제가 있다

나숫셈 연산시 소숫점으로 결과값을 나오게 할려면 조금 다르게 사용해야 한다

는 나의 착각이였고요

항상 int만 /연산을 하다보니 까먹었다

그냥 float로 /를 하면 정상적으로 소숫점이 나온다

 

using System;

/*
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.
*/
class M5
{
    private string? _input;
    private string[] _inputStrings = new string[2];
    static void Main()
    {
        M5 m5 = new M5();
        m5.run();
    }
    private void run()
    {
        _input = Console.ReadLine();
        if (_input == null)
            throw new ArgumentException("input is null");

        _inputStrings = _input.Split(" ");

        float answer = float.Parse(_inputStrings[0]) / float.Parse(_inputStrings[1]);

        System.Console.Write(answer);
    }
}

왠지는 모르겠는데 틀렸다

 

 

 

정밀도 문제라고 한다

float로는 10^-7만 되는데 현재 문제는 ^-9까지의 정밀도를 요구한다

using System;

/*
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.
*/
class M5
{
    private string? _input;
    private string[] _inputStrings = new string[2];
    static void Main()
    {
        M5 m5 = new M5();
        m5.run();
    }
    private void run()
    {
        _input = Console.ReadLine();
        if (_input == null)
            throw new ArgumentException("input is null");

        _inputStrings = _input.Split(" ");

        double answer = double.Parse(_inputStrings[0]) / double.Parse(_inputStrings[1]);

        System.Console.Write(answer);
    }
}