[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을 사용해야 하는 이유는 아래 질문글에서 확인 가능할 것 같다.
'백준 > 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 |
백준/C#