В доме N подъездов, в каждом из них M этажей, на каждом этаже K квартир. Определить, в каком подъезде находится эта квартира и на каком этаже. Гарантируется, что квартира с таким номером в данном доме существует.
Ввод
В первой строке через пробел вводятся три числа N, M и K. Во второй строке вводится X - номер квартиры.
Вывод
Два числа через пробел: номер подъезда и номер этажа.
Нужно решить именно на Python 3.4!
Python
В доме N подъездов, в каждом из них M этажей, на каждом этаже K квартир. Определить, в каком подъезде.. Решите на python
Раз гарантируется, что есть, то в задаче N подъездов - лишнее.
M * K = квартир в подъезде
от X отбросить M * K
X % ( M * K )
в итоге число от 0 до M*K-1
от 0 до K-1 = 1ый этаж
и т. д.
что решается целочисленным делением и +1
M * K = квартир в подъезде
от X отбросить M * K
X % ( M * K )
в итоге число от 0 до M*K-1
от 0 до K-1 = 1ый этаж
и т. д.
что решается целочисленным делением и +1
Денис Куртуков
большое спасибо, теперь буду пробовать перекинуть на питон
Намалевал не глянул, что нужно вводить через пробел. Вообщем сам доделай.
f=int(input('введите номер квартиры '))# кол-во квартир
v=int(input('введите кол-во подъездов '))# кол-во подъездов
b=int(input('введите кол-во этажей '))# кол-во этажей
n=int(input('введите кол-во квартир на этаже '))# кол-во квартир на этаже
c=b*n # кол-во квартир в подъезде
x=f//c
y=(x+1)# узнаём в каком подъезде квартира
z=f%c
d=z//n
s=(d+1)# узнаём на каком этаже
print(str(y)+' подъезд')
print(str(s)+' этаж')
f=int(input('введите номер квартиры '))# кол-во квартир
v=int(input('введите кол-во подъездов '))# кол-во подъездов
b=int(input('введите кол-во этажей '))# кол-во этажей
n=int(input('введите кол-во квартир на этаже '))# кол-во квартир на этаже
c=b*n # кол-во квартир в подъезде
x=f//c
y=(x+1)# узнаём в каком подъезде квартира
z=f%c
d=z//n
s=(d+1)# узнаём на каком этаже
print(str(y)+' подъезд')
print(str(s)+' этаж')
Денис Куртуков
РЕСПЕКТ!
Денис Куртуков
правда всё равно не так..
Сергей, спасибо большое!
может, кому пригодиться иное решение (последний принт нужно будет только под 3.4 переделать через .format() )
import math
floors, flats_per_floor = 9, 4
total_flats_in_entrance = floors * flats_per_floor
lst_of_flat_numbers = [1, 2, 8, 9, 35, 36, 37, 71, 72, 73, 80, 81]
for flat_number in lst_of_flat_numbers:
# место для проверки на 0 и отрицательные числа, а также на кол-во подъездов
if flat_number > total_flats_in_entrance:
entrance = math.ceil(flat_number / total_flats_in_entrance)
dump = flat_number
# соотносим с номерами 1-го подъезда
while dump > total_flats_in_entrance:
dump -= total_flats_in_entrance
floor = math.ceil(dump / flats_per_floor)
else:
entrance = 1
floor = math.ceil(flat_number / flats_per_floor)
print(f'Квартира {flat_number} в {entrance} подъезде на {floor} этаже')
import math
floors, flats_per_floor = 9, 4
total_flats_in_entrance = floors * flats_per_floor
lst_of_flat_numbers = [1, 2, 8, 9, 35, 36, 37, 71, 72, 73, 80, 81]
for flat_number in lst_of_flat_numbers:
# место для проверки на 0 и отрицательные числа, а также на кол-во подъездов
if flat_number > total_flats_in_entrance:
entrance = math.ceil(flat_number / total_flats_in_entrance)
dump = flat_number
# соотносим с номерами 1-го подъезда
while dump > total_flats_in_entrance:
dump -= total_flats_in_entrance
floor = math.ceil(dump / flats_per_floor)
else:
entrance = 1
floor = math.ceil(flat_number / flats_per_floor)
print(f'Квартира {flat_number} в {entrance} подъезде на {floor} этаже')
Похожие вопросы
- Помогите, пожалуйста, решить задачу Python
- Проект Эйлера / Правильно ли решил задачу? Python
- Помогите решить задачу python
- Помогите решить задачу Python,очень нужно
- Помогите решить задачу. python
- Решить задачу python
- PYTHON! Требуется определить количество способов выплаты n рублей монетами по 1, 2, 5 и 10 рублей.
- Python Имеется неупорядоченный массив из n различных целых чисел от 0 до n (0,1,…,j-1,j+1,….,n).
- Пожалуйста, помогите решить задачу на Python. Упражнения 57,58,59,60.
- Пожалуйста, помогите решить задачу на Python. Упражнение 124, 125, 146