22 апреля 2020
1 Задача:
def draw_snake(n):
x = 0
y = 0
k = 1
rows_filled = 0
cols_filled = 0
direction = 1
result = [[0 for _ in range(n)] for _ in range(n)]
while k < n ** 2:
result[x][y] = k
k += 1
# Идём вправо
if direction == 1:
y += 1
if y == n - 1 - cols_filled:
direction = 2
continue
# Идём вниз
if direction == 2:
x += 1
if x == n - 1 - rows_filled:
rows_filled += 1
direction = 3
continue
# Идём влево
if direction == 3:
y -= 1
if y == 0 + cols_filled:
cols_filled += 1
direction = 4
continue
# Идём вверх
if direction == 4:
x -= 1
if x == 0 + rows_filled:
direction = 1
continue
result[x][y] = k
for i in result:
line = ""
for j in i:
line += str(j) + "\t"
print(line)
def main():
n = int(input("Enter size >> "))
draw_snake(n)
if __name__ == "__main__":
main()
2 Задача:
def draw_ziggurat(n):
size = 1
i = 1
while i < n:
if size == 1:
size = 3
else:
size += 2
i += 1
for x in range(size):
line = ""
for y in range(size):
line += str(get_ring_number(x, y, size) + 1) + " "
print(line)
def get_ring_number(x, y, n):
x_ring = min(abs(0 - x), abs(n - x - 1))
y_ring = min(abs(0 - y), abs(n - y - 1))
return min(x_ring, y_ring)
def main():
n = int(input("Enter size >> "))
draw_ziggurat(n)
if __name__ == "__main__":
main()
Ответить
Пожаловаться