[백준] 1008번 A/B C++ 문제 풀이 입출력과 사칙연산

2019. 6. 19. 22:04알고리즘/백준

728x90
반응형

문제

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

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다.


예제 입력 1

1 3


예제 출력 1

0.33333333333333333333333333333333


예제 입력 2

4 5


예제 출력 2

0.8

 


문제 풀이

#include <iostream>
using namespace std;

int main(){
    double a, b;
    
    while(1){    
        cin>>a>>b;        
        if(a > 0 && b < 10 && b != 0)
            break;
        else
            continue;
    }
    
    cout.precision(15);
    cout<<a/b;    
}

double형 변수 a,b를 입력받고 a가 0보다 크고, b가 10보다 작고 0이 아니면 while문을 나옵니다.

cout.precision함수는 15자리만큼 출력하겠다는 의미입니다. 정수부 포함 15자리를 의미하므로 

소수점 15자리까지 출력하고 싶으시면 하단의 새로운 코드를 참조하시면 됩니다.

 

#include <iostream>
using namespace std;

int main() {
 double a,b;
 
 cin>>a>>b;
 
 cout<<fixed;
 cout.precision(15);
 cout<<a/b;
 cout.unsetf(ios::fixed);
}

cout<<fixed;는 소수점을 고정시켜 출력하겠다는 의미입니다. fixed가 되어있는 상태로 precision(n)값을 조정해서 출력해보면 소수점 아래로 n자리만큼 출력이 되는 것을 확인할 수 있습니다. 

 

반대로 소수점 고정을 해제하려면 밑에 보이시는 cout.unsetf(ios::fixed);를 입력해주시면 소수점을 고정한 상태가 해제되어 다시 출력해보면 정수부까지 포함해서 자리수를 세어 출력하는 것을 확인할 수 있습니다.

 

출처 : https://www.acmicpc.net/problem/1008

 

1008번: A/B

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

www.acmicpc.net

 

728x90
반응형