되는대로 살자

[C언어 기출문제&풀이] 타일 수 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 타일 수

malu 2010. 11. 3. 00:19

프로그램 명: tiles(open problem)
제한시간: 1 초
바닥에 타일을 깔기 위해 필요한 타일수를 구하는 것이다.

타일의 크기는 8*8 이다. 타일은 그대로 이용할 수도 있고 잘라서 부분을 이용할 수도 있다. 그런데 잘라서 사용한 타일의 나머지는 반드시 버려야 한다.

문제는 사용되어진 온전한 타일수와 잘라서 사용한 타일수를 구하는 것이다. 모든 단위는 inch 이고 생략한다.

입력

방의 가로 , 세로 크기가 주어진다. 각 수는 1000 이하이다.

출력

출력 예의 형식으로 출력한다.

입출력 예

입력

160 240

출력

The number of whole tiles is 600 part tiles is 0

입력

100 120

출력

The number of whole tiles is 180 part tiles is 15
출처:.cis.uab.edu 2008 high school programming contest
풀이 : 만약 가로가 8로 나누어 떨어지지 않으면 세로를 8로 나눈 수를 잘라야 한다.
그와 같이 세로가 8로 나누어 떨어지지 않으면 세로를 8로 나눈 수만큼을 잘라야 한다.
만약 가로 세로 둘다 8로 나누어 떨어지지 않으면 두 끝줄이 만나는 부분에 하나가 생기므로 
하나를 더 자르도록 한다. 
소스코드 
01#include <stdio.h>
02  
03int main()
04{
05    int a,b,c,d,e,f; 
06    e=f=0;
07    scanf("%d%d",&a,&b);
08    c=(a-a%8)/8; d=(b-b%8)/8; 
09    if(a%8!=0) e=1;
10    if(b%8!=0) f=1;
11    if(e==f&&e==1) printf("The number of whole tiles is %d part tiles is %d",c*d,1+e*d+c*f);
12    else printf("The number of whole tiles is %d part tiles is %d",c*d,e*d+c*f);
13}