Они просто заполняют прямоугольник комнаты по короткому краю (возможно, чтобы сделать более короткие куски, а не длинные).
w = 4, комната 9x5: три куска A = 4x5, B = 4x5, C = 4x5 иотрежьте последний, чтобы сделать полосу 4x1
A A A A A
A A A A A
A A A A A
A A A A A
B B B B B
B B B B B
B B B B B
B B B B B
C C C C C
--------- cut
C C C C C
C C C C C
C C C C C
w = 6, комната 13x8: три куска A = 6x8, B = 6x8, C = 6x8 и отрежьте последний, чтобы сделать полосу 6x1
import math
def calccarpet(wdt, roomwdt, roomhgt):
longer = max( roomwdt, roomhgt)
shorter = min( roomwdt, roomhgt)
numpieces = math.ceil(longer / wdt)
carpetarea = numpieces * wdt * shorter
return carpetarea
print(calccarpet(4, 5, 9))
print(calccarpet(6, 13, 8))
>>>
60
144