Tiling problem | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 1

Tiling problem

this program must calculate how many tiles are needed to tile a floor. that is, if a piece is cut from a tile, the rest of tile must be thrown away. the program accepts the length and width of the room and returns how many whole tiles are used and how many part tiles are used. the length is given in inches. Input: consist of 2 integers. the first integer width of the room and second integers length of the room sample input: 160 240 sample o/p : 600 0 sample input: 100 120 sample o/p: 180 15

28th Aug 2017, 5:45 AM
Muthukrishnan K
Muthukrishnan K - avatar
3 Answers
+ 2
You didn't say how wide the tile is. Anyhow, let's pick example 1 and say the tile is 27x27 inches. How many tiles fit into 160 inches? 160 / 27 = 5.925... How many tiles fit into 240 inches? 240 / 27 = 8.888... So let's draw a room plan: AAAAAD CCCCCB CCCCCB CCCCCB CCCCCB CCCCCB CCCCCB CCCCCB CCCCCB Care full 27x27 tiles, A and B are ones we needed to cut, and D we needed to cut twice. How many C-tiles are there? 5*8, or in other words floor(160 / 27) * floor(240 / 27). How many A-tiles are there? 5, or in other words floor(160 / 27). How many B-tiles are there? 8, or in other words floor(240 / 27). How many D-tiles are there? 1, always. Final answer: Full tiles: floor(width / tile_width) * floor(height / tile_height) Partial tiles: floor(width / tile_width) + floor(height / tile_height) + 1 Special case! If the tile size divides the width or the height of the room without anything leftover, that means you don't need any part tiles. In code: var h = height / tile_height, w = width / tile_width; if(h == floor(h) && w == floor(w)){ // we don't need to count A and B and D }else if(h == floor(h)){ // we don't need to count B and D }els if(w == floow(w)){ // we don't need to count A and D } I hope that helps.
28th Aug 2017, 6:48 AM
Schindlabua
Schindlabua - avatar
+ 1
I read that as him needing to find the full and the partial tiles seperately, but if he doesn't, using ceil is easier of course :)
28th Aug 2017, 8:53 AM
Schindlabua
Schindlabua - avatar
0
let tile height and width be 8 y = height / 8; x = width / 8; h = height % 8; w = width % 8; if(w ==0 && h ==0) #if only both heigth and width are divisible by 8 { printf("%d\n%d",(x*y),(h)); } else if ((h == 0)&&(w!=0)) #if only heigth divisible by 8 { printf("%d\n%d",(x*y),(y)); } else if((w == 0)&&(h!=0)) #if only width are divisible by 8 { printf("%d\n%d",(x*y),(x)); } else { #if only both heigth and width are not divisible by 8 printf("%d\n%d",(x*y),(w)); }
9th Jun 2023, 6:23 PM
HARIKA