백준 1008번: A/B
by Jm Park
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10^-9 까지 허용한다.
예제 입력/출력
입력 | 출력 |
---|---|
1 3 | 0.33333333333333333333333333333333 |
4 5 | 0.8 |
코드
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int a, b;
double ans;
scanf("%d %d", &a, &b);
ans = (double)a / b; // double형으로 타입캐스팅
// 1. c++ cout로 소수점 지정
cout.setf(ios::fixed); //소수점 아래 자리수 강제 출력 지정
cout.precision(9); // 원하는 자리수
cout << ans << endl;
// 2. c printf로 소수점 지정
printf("%.9lf\n", ans);
return 0;
}
풀이
문제는 어렵지 않다. 단순히 a,b 값을 받아 나눠서 문제에서 요구한대로 소수점 9자리까지 몫 값을 출력한다.
- C의 경우: printf문에서 %.9lf로 한다.
=> %lf(double형 출력) + .9(소수점 9번째 자리까지 출력)- C++의 경우: precision, setf 사용.
precision만 사용한다면면 소수점 표기는 최대 지정한 숫자까지 유동적으로 변함.
setf를 사용한다면 소수점 자리수를 지정하기 때문에 무조건 해당 자리까지 출력. 강제성을 띔.
cf) cout.unsetf(ios::fixed) : setf로 강제한 소수점 자리수 강제성 취소.
Subscribe via RSS