John wants to decorate a room with wallpaper. He's heard that 
making sure he has the right amount of wallpaper is more complex than it sounds. 
He wants a fool-proof method for getting it right.

John knows that the rectangular room has a length of `l` meters, a width of `w` meters, a height of `h` meters.
The standard width of the rolls he wants to buy is `52` centimeters. The 
length of a roll is `10` meters.
He bears in mind however, that it’s best to have an extra length of wallpaper handy in case of mistakes or miscalculations so he wants to buy a length `15%` greater than the one he needs.

Last time he did these calculations he got a headache, so could you help John? Your function `wallpaper(l, w, h)` should return as a plain English word
in lower case the number of rolls he must buy.

### Example:

`wallpaper(4.0, 3.5, 3.0) should return "ten"`

`wallpaper(0.0, 3.5, 3.0) should return "zero"`

# Notes:
- all rolls (even with incomplete width) are put edge to edge 
- 0 <= l, w, h (floating numbers), it can happens that `w x h x l` is zero
- the integer `r` (number of rolls) will always be less or equal to 20


- FORTH: the number of rolls will be a *positive or null integer* (not a plain English word; this number can be greater than 20)

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def wallpaper(l, w, h):
	

Solutions:
from math import ceil
numbers = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', 10: 'ten', 11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'fourteen', 15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18: 'eighteen', 19: 'nineteen', 20: 'twenty'}

def wallpaper(l, w, h):
	return 'zero' if w * l == 0 else numbers[ceil((2 * l + 2 * w) * h * 1.15 / 5.2)]


from math import ceil

def wallpaper(l, w, h):
	numarr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty']
	return numarr[ceil(l and w and (l + w) * h * 2 * 1.15 / 5.2)]


i = __import__
wallpaper = lambda l, w, h, n=i('requests').get('https://num-words.com/in-words/0-9999/0-49/').text: [e.get_text() for e in i('bs4').BeautifulSoup(n)('b')][i('math').ceil((l + w) * 2 * h / 5.2 * 1.15) * 3 * bool(w * h * l)].lower()


def wallpaper(l, w, h):
	result = {'1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine', '10': 'ten', '11': 'eleven', '12': 'twelve', '13': 'thirteen', '14': 'fourteen', '15': 'fifteen', '16': 'sixteen', '17': 'seventeen', '18': 'eighteen', '19': 'nineteen', '20': 'twenty'}
	wall_area = 1.15 * (2 * l * h + 2 * w * h)
	wallpaper = 0.52 * 10
	to_buy = wall_area / wallpaper
	for (k, v) in result.items():
		if l == 0 or w == 0 or h == 0:
			return 'zero'
		elif int(k) == round(to_buy + 0.5):
			return v


from math import ceil
L = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty']

def wallpaper(l, w, h):
	return L[0 if not (l and w) else ceil(2 * h * (l + w) * 1.15 / 10 / 0.52)]


def wallpaper(l, w, h):
	dict = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty']
	rolls = int((l + w) * 2 * h / 0.52 / 10 * 1.15) + 1 if l and w and h else 0
	return dict[rolls]


import math

def wallpaper(l, w, h):
	numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty']
	if l == 0 or w == 0 or h == 0:
		return numbers[0]
	return numbers[math.ceil((l + w) * h * 2.0 * 10.0 * 1.15 / 52.0)]


ANS = {i: v for (i, v) in enumerate(('zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty'))}

def wallpaper(l, w, h):
	(n, r) = divmod(2 * (l + w) / 0.52 * h * 1.15, 10)
	return ANS[l and w and h and int(n) + bool(r)]