- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtower.py
More file actions
Latest commit
67 lines (56 loc) · 2.26 KB
/
Copy pathtower.py
File metadata and controls
67 lines (56 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/python
# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня)
#
# Вавилонцы решили построить удивительную башню —
# расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната,
# затем идет два этажа, на каждом из которых по две комнаты,
# затем идёт три этажа, на каждом из которых по три комнаты и так далее:
# ...
# 12 13 14
# 9 10 11
# 6 7 8
# 4 5
# 2 3
# 1
#
# Эту башню решили оборудовать лифтом --- и вот задача:
# нужно научиться по номеру комнаты определять,
# на каком этаже она находится и какая она по счету слева на этом этаже.
#
# Входные данные: В первой строчке задан номер комнаты N, 1 ≤ N ≤ 2 000 000 000.
#
# Выходные данные: Два целых числа — номер этажа и порядковый номер слева на этаже.
#
# Пример:
# Вход: 13
# Выход: 6 2
#
# Вход: 11
# Выход: 5 3
d_room=int(input('Elevator: Enter the room number:'))
tower= [] # Create tower
i=0# Rooms counter
x=0# Stages counter
f=0# Floors counter
d=0# Doors from left counter
whilei<d_room:
# Counting stages
x+=1
# Creating block
block= []
for_inrange(x):
# Creating floor
f+=1
floor= []
fordinrange(x):
# Counting rooms
i+=1
floor.append(i)
ifi==d_room:
print('location of room:', d_room, '\nfloor:', f, '\ndoor from left:', d+1)
block.append(floor)
tower.append(block)
# Draw the tower in a fun way
print('\nThe upended tower will looks like:')
print(str(tower).replace('],', ']\n').replace(']', '').replace('[', '\r').replace(',', ''))