h, b, c, s를 각 각 입력받고, 문제 설명에 나온 공식대로 입력값을 모두 곱하면 소리 파일의 저장 용량을 계산할 수 있다.

그러나 계산한 값은 비트 단위이기 때문에 출력 예시처럼 MB 단위로 바꿔야 한다. 

문제 설명의 단위들을 보면 비트를 1024로 두번 나누고, 8로 한번 나누면 MB단위로 만들 수 있다. 

이때 자료형은 int 자료형과 float 자료형을 사용하면 계산 과정에서 자료형의 범위를 초과할 수 있기 때문에 정수는 long long 자료형과 실수는 double 자료형을 사용하였다. long long 자료형은 서식문자로 %lld를 사용하고, double 자료형은 서식문자로 %lf를 사용한다.

또한 소숫점 한자리만 출력해야 하기 때문에 %.1lf로 서식문자를 사용한다.

정답은 다음 코드와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
    long long int h, b, c, s;    // 입력받을 변수
    double result;                // 계산결과를 저장할 변수
    scanf("%lld %lld %lld %lld"&h, &b, &s, &c);    // 입력
    
    result = h * b * s * c;        // 계산한 결과 (bit 단위)
    printf("%.1lf MB", result/(8*1024*1024));    // 계산 결과를 MB단위로 바꾸어 출력
    return 0;
}
cs

 

+ Recent posts