Шашку — в дамки ДАЮ 100 БАЛЛОВ!!!! НА ПИТОНЕ С ИСПОЛЬЗОВАНИЕМ ДВУМЕРНОГО МАССИВА На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка ходит по диагонали. на одну клетку вверх-вправо или вверх-влево. Шашка проходит в дамки, если попадает на верхнюю горизонталь.) Входные данные Вводятся два числа от 1 до 8: номер номер столбца (считая слева) и строки (считая снизу), где изначально стоит шашка. Выходные данные Вывести одно число — количество путей в дамки. Примеры Ввод 3 7 1 8 3 6 Вывод 2 1 4
СРОЧНО

Ответы

Ответ дал: DNHelper
21

Алгоритм: положим в ячейку, где стоит шашка, значение 1. В некоторую ячейку с горизонталью i и вертикалью j можно добраться из клеток (i-1, j-1) и (i-1, j+1), если эти клетки существуют. Тогда для двумерного массива A, выступающего в роли доски, будет справедливо следующее утверждение: A[i+1][j] = A[i][j-1] + A[i][j+1]. Существовать ячейки не будут, если находятся в крайних столбцах: A[i+1][0] = A[i][1] и A[i+1][7] = A[i][6].

Программа:

y, x = map(int, input().split())

x, y = x - 1, y - 1

board = [[0]*8 for i in range(8)]

board[x][y] = 1

for i in range(x, 7):

   board[i+1][0] += board[i][1]

   for j in range(1, 7):

       board[i+1][j] += board[i][j-1] + board[i][j+1]

   board[i+1][7] += board[i][6]

print(sum(board[7]))


nasgoryach: При вводе 1 8, 3 6 дает неправильный результат
DNHelper: Забыл += вместо = поставить, хотя это вроде как роли не играет. При вводе 1 8 результат 1, 3 6 — 4. Всё правильно.
nasgoryach: Спасибо большое!
Вас заинтересует