Не могу решить задачу по информатике
на вход программе поступает номер квартиры одноподъездного дома. определить, на каком этаже находиться квартира с таким номером, если на каждом этаже по 4 квартиры
Ответы (3 шт):
Автор решения: Daniel
→ Ссылка
f = open("input.txt")
n = f.readline()
t = bool(int(n) % 4)
print(int(n) // 4 + int(t))
Вот такое решение на python смог я придумать :D
Если нужно без файлов, то замени на n = int(input()), а строчку с open удали.
Автор решения: Oopss
→ Ссылка
Мне попадалось такое решение
kv = int(input('Номер квартиры? '))
print('это', -(kv // -4), ' этаж')
Автор решения: geo
→ Ссылка
#python
Решение в одну строку:
print((lambda i=int(input('Введите номер квартиры>> ')):(i+3)//4 if i>=0 else -((-i+3)//4))(), 'этаж')
Через ООП c проверкой:
class WhatFloor:
@staticmethod
def __what_floor(number_appartament:int, on_floor:int):
what_floor = (abs(number_appartament)+3)//on_floor
return what_floor if number_appartament>=0 else -what_floor
def __init__(self, number_appartament:int, on_floor:int):
self.__number_appartament = number_appartament
self.__on_floor = on_floor
self.__what_floor = WhatFloor.__what_floor(number_appartament = number_appartament
, on_floor = on_floor)
@property
def what_floor(self):
return self.__what_floor
if __name__ == '__main__':
test = ((12,4),(5,4),(-12,4),(-5,4),(0,4), (1,4), (-1,4))
for i,j in sorted(test,key=lambda l:abs(l[0])):
print(f'Номер квартиры {i}, число квартир на этаже {j}, этаж {WhatFloor(i,j).what_floor}')