Не могу решить задачу по информатике

на вход программе поступает номер квартиры одноподъездного дома. определить, на каком этаже находиться квартира с таким номером, если на каждом этаже по 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}')
→ Ссылка