Как найти путь робота, если он может двигаться только в 3-х направлениях:вправо, вниз, по диагонали вниз.
Представьте себе робота, сидящего в верхнем левом углу сетки NxN. Робот может двигаться только в трех направлениях: вправо , вниз и по диагонали вниз. Робот должен достичь нижнего правого угла сетки NxN. Представьте себе, что определенные квадраты являются “запретными” или “смещенными”, так что робот не может наступить на них. Напишите программу для определения количества возможных путей движения робота.Ввод точек смещения заканчивается,когда пользователь вводит координаты как (-1, -1).
Ввод:
Введите размер сетки
3
Введите точки сетки, которые являются смещениями
0 1
-1 -1
выход:
Пути для робота таковы
( 0 , 0 ) - ( 1 , 0 ) - ( 2 , 0 ) - ( 2 , 1 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 0 ) - ( 1 , 1 ) - ( 2 , 1 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 0 ) - ( 1 , 1 ) - ( 1 , 2 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 0 ) - ( 1 , 1 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 0 ) - ( 2 , 1 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 1 ) - ( 2 , 1 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 1 ) - ( 1 , 2 ) - ( 2 , 2 ) ( 0 , 0 ) - ( 1 , 1 ) - ( 2 , 2 )
Что я уже пробовал:
#include <iostream> using namespace std; int numberOfPaths(int m, int n) { int count[m][n]; for (int i = 0; i < m; i++) count[i][0] = 1; for (int j = 0; j < n; j++) count[0][j] = 1; for (int i = 1; i < m; i++) { for (int j = 1; j < n; j++) count[i][j] = count[i-1][j] + count[i][j-1]; } return count[m-1][n-1]; } int main() { cout << numberOfPaths(3, 3); return 0; }
//Это то,что я нашел для подсчета пути, если он может двигаться только в 2 направлениях:вправо, вниз.
PIEBALDconsult
Мы не будем делать за тебя домашнее задание.