profile image

L o a d i n g . . .

문제 : 1초 동안 마이크로 소리강약을 체크하는 수를 h, 한 번 체크한 결과를 저장하는 비트 b, 좌우 등 소리를 저장할 트랙 개수인 채널 c, 녹음할 시간 s가 주어질 때, 필요한 저장 용량을 계산하는 프로그램을 작성해보자.

실제로 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면 44100 * 16 * 2 * 1 bit의 저장공간이 필요하다.

 

 

정답 : 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	long long int h, b, c, s;
	double result;

	scanf("%lld %lld %lld %lld", &h, &b, &c, &s);

	result = h * b * c * s;
	result = result / 8 / 1024 / 1024;

	printf("%.1f MB", result);
	
	return 0;
	
}

처음에 h, b, c, s를 int형으로 주었더니 오버플로우가 발생해 long long int로 변경해주었다.

그래서 scanf 입력시에도 서식지정자를 %lld로 지정해주어야 한다.

복사했습니다!