[코드트리 조별과제] 군대에서 해보는 코딩공부 - 실수 입력받아 계산

찡완이·2024년 8월 11일
0

서론

  • 저번에 풀었던 소수점 출력 문제와 비슷한 문제입니다.
  • 이번엔 cmath 라이브러리를 사용해 풀어보았습니다.

문제 설명

  • 실수 a를 입력받아 a + 1.5의 값을 소숫점 2번째 자리까지 반올림하여
    출력하는 문제입니다.

문제 접근 방법

  • 소수점 출력 문제와 비슷하다고 판단하여 cmath 라이브러리의 함수들을 활용해보기로 했습니다.
  • 특정 실수의 값을 소숫점 1번째 자리에서 반올림해주는 round()함수에 대해 알게 되었습니다.
  • 전 소숫점 2번째 자리까지 반올림, 즉 3번째 자리에서 반올림해야 하므로
    실수 a에 100을 곱한 후 round()를 사용, 다시 100을 나눠주는 방식을 채택했습니다.

문제 해결 과정

  1. 실수형 변수 a를 선언, 입력받은 a에 100을 곱하고 round()함수에 넣은 후 다시 100을 나눈다.
    -> int a; round(a * 100) / 100.0;
  2. a에 1.5를 더한 후 출력한다.(1.5는 반올림 과정에 영향이 없기에 나중에 더해줘도 ok.)
    -> cout << a + 1.5;

주의 사항

  • c는 실수를 받아야하므로 float나 double로 선언할 것.
  • round()함수는 소숫점 1번째 자리에서 수를 반올림함. 즉, 정수형 값을 반환하므로 100.0으로 나누어 값 손실이 없도록 할 것.

작성 코드

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    float a;
    cin >> a;
    cout << round(a * 100) / 100.0 + 1.5; 
    return 0;
}

결과

  • 예제1 - input : 5.26 -> output : 6.76
  • 정상적으로 작동했습니다.

여담

  • 역시 라이브러리를 쓰는게 코드도 간결하고 좋은 것 같습니다.
  • 다음 번엔 좀 더 어려운 문제에 도전해보고 싶습니다.```
profile
코딩공부합니다

0개의 댓글