백준 단계별로 풀어보기 1단계 입출력과 사칙연산 8번 문제
1008번: A/B
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제의 핵심
1. float보다 더 정확한 정수형을 알고 있는가?
우선,
기본적인 입출력과 사칙연산에 대해서는 이전 글을 참고하자.
c# : A+B (1000번)
백준 단계별로 풀어보기 1단계 입출력과 사칙연산 5번 문제 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 입출력 문제가 끝나고 사칙연산 문제가
coding-of-today.tistory.com
이 문제는 나눠서 소수점까지 표현해야하는 문제이다.
문제를 살펴보면 이렇게 쓰여있다.
"실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9이면 된다"
만약 소수점 표현을 위해서 float형을 사용했다면 절대로 맞출 수가 없다.
float 형식은 소수 7번째 자리까지만 다룰 수 있기 때문이다.
문제에서의 요구는 9번째 자리수까지 맞춰야한다.
따라서, float보다 더 정확한 데이터 형식을 사용해야한다.
C#에서는 float 이외에도 double이라는 형식이 존재한다.
double은 8바이트로 float의 2배의 크기이며, 소수점 15자리까지 정확하게 다룬다.
double 형식을 사용하는 것으로 해당 문제를 풀 수 있다.
C# 팁.
decimal 이라는 데이터 형식도 존재한다.
decimal은 소수점 29번째까지 표현할 수 있는 소수 형식이다.
float 형식은 숫자 뒤에 f,
decimal 형식은 숫자 뒤에 m 을 붙여야한다.
double은 숫자 뒤에 아무것도 적지 않는다.
정답코드
using System;
namespace baekjoon
{
class 사칙연산
{
static void Main(string[] args)
{
string[] s = Console.ReadLine().Split();
Console.WriteLine(double.Parse(s[0]) / double.Parse(s[1]));
}
}
}
'C# > C# : Baekjoon' 카테고리의 다른 글
[백준] C# : 나머지 (10430번) (0) | 2021.07.22 |
---|---|
[백준] C# : 사칙연산 (10869번) (0) | 2021.07.22 |
[백준] C# : A X B (10998번) (0) | 2021.07.21 |
[백준] C# : A-B (1001번) (0) | 2021.07.21 |
[백준] C# : A+B (1000번) (0) | 2021.07.21 |
댓글