백준 1008번 A/B 풀이 코드
C | C++ | Java | Python
풀이
scanf()로 a, b 변수를 받고 prinf()로 a/b를 출력합니다. 입력 시엔 변수명 앞에 &을 쓰는 것에 유의합니다. 상대오차가 10⁻⁹ 이내여야 한다는 단서가 있으므로 소숫점 아래 9자리까지 실수형으로 출력합니다.
아래 코드처럼 입력시 a, b 변수를 정수(int)로 받았다면 나누기 연산 시 실수(double)로 형 변환을 해야 합니다. 이때 (double)(a / b)로 작성하면 (a / b)가 소숫점이 절삭된 정수로 먼저 계산된 뒤 실수 형태로 변환되기 때문에 오차가 발생합니다. 나눗셈 연산보다 변수 a의 실수 변환이 먼저 되도록 (double) a / b로 작성해 주세요.
cin으로 a, b 변수를 받고 cout으로 a*b를 출력합니다. 상대오차가 10⁻⁹ 이내여야 한다는 단서가 있으므로 소수점 아래 11자리에서 반올림하여 10자리까지 표현할 수 있도록 cout.precision(10)을 선언한 후 출력합니다.
java.util.Scanner 라이브러리를 불러와 Scanner(System.in)로 a, b 변수를 받고 System.out.println()로 a/b를 출력합니다. 상대오차가 10⁻⁹ 이내여야 한다는 단서가 있으므로 변수는 소수점 아래 9자리 이상 표현할 수 있는 실수형(double)으로 입력받습니다.
double형의 연산은 반복될 시 오차가 발생할 수 있지만 이 문제 같은 단순한 1회 연산에선 소수점 아래 9자리 이내 오차 위험이 없으므로 그대로 출력합니다.
map(int, input().split())로 a, b 변수를 입력 받고 print()로 a/b를 출력합니다. 상대오차가 10⁻⁹ 이내여야 한다는 단서가 있지만, Python3는 나누기 연산 시 기본적으로 소수점 16번째자리까지 표현하는 실수를 리턴하므로 그대로 출력합니다.
코드
#include <stdio.h>
int main () {
int a, b;
scanf("%d %d", &a, &b);
printf("%.9f", (double)a / b);
return 0;
}
#include <iostream>
int main() {
double a,b;
std::cin >> a;
std::cin >> b;
std::cout.precision(10);
std::cout << a / b;
return 0;
}
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b = sc.nextDouble();
sc.close();
System.out.print(a/b);
}
}
문제 출처
a, b = map(int, input().split())
print(a / b)
문제 출처
'Coding > BAEKJOON' 카테고리의 다른 글
[백준] 10430번 나머지 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.07.04 |
---|---|
[백준] 10869번 사칙연산 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.07.03 |
[백준] 10998번 A×B 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.06.30 |
[백준] 1001번 A-B 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.06.29 |
[백준] 1000번 A+B 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.06.28 |