[1008] A/B

백준/C#

2024. 9. 25. 18:51

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

입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
 
출력: 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9 이하이면 정답이다.

 

using System;

class Program
{
    static void Main(string[] args)
    {
        // 먼저 선언
        double num1;
        double num2;

        while (true)
        {
            // 입력을 받는다.
            String input = Console.ReadLine();

            // 입력받은 문자열을 스페이스바 기준으로 나눈다.
            String[] parts = input.Split(' ');

            // 분리한 문자열을 정수로 변환한다.
            bool isNum1Valid = double.TryParse(parts[0], out num1);
            bool isNum2Valid = double.TryParse(parts[1], out num2);

            // 조건을 만족하는지 확인
            if (0 < num1 && num2 < 10)
            {
                // 조건에 맞는다면 루프 탈출
                break;
            }
            else
            {
                // 조건에 맞지 않는다면 다시 입력
                Console.WriteLine("첫 번째 숫자는 0보다 크고, 두 번째 숫자는 10보다 작은 숫자를 입력하세요.");
            }
        }

        // 결과를 출력한다.
        Console.WriteLine(num1 / num2);
    }
}

 

처음 문제를 읽고

마이너스 9승? 이게 뭐여?

했는데, 10998 문제에서 출력 부분만 바꿔서 출력해보니 곧 무슨 소리인지 알아들을 수 있었다.

num1 과 num2(문제에서의 A와 B)를 int 형식으로 받게 되면 1 / 3의 결과가 0으로 출력되는 것이 그 문제.

형식을 double로 함으로 문제를 해결하였다.

 

float가 아닌 double을 사용해야 하는 이유는 아래 질문글에서 확인 가능할 것 같다.

https://www.acmicpc.net/board/view/144028

'백준 > C#' 카테고리의 다른 글

[10430] 나머지  (0) 2024.09.27
[18108] 1998년생인 내가 태국에서는 2541년생?!  (0) 2024.09.27
[10926] ??!  (0) 2024.09.26
[10869] 사칙연산  (0) 2024.09.25
[10998] A×B  (0) 2024.09.23
myoskin