С++ Пчёлка Представим себе соты пчелиного улья - поле с шестиугольными клетками, состоящее из N клеток на каждой

С++ Пчёлка Представим себе соты пчелиного улья - поле с шестиугольными клетками, состоящее из N клеток на каждой стороне. Пчелка находится в верхней левой клетке A. За один ход пчелка может переместиться на клетку вниз, на клетку вниз-вправо или на клетку вверх-вправо (она не может ползти вверх и влево). Напишите программу, которая найдет количество способов, которыми пчелка может переместиться из клетки A в противоположную клетку B, используя указанные правила. Входные данные: В единственной строке дано одно число N - размеры шестиугольного поля (2 ≤ N ≤ 12). Выходные данные: Выведите одно целое число, которое представляет количество способов, которыми пчелка может переместиться.
Дракон

Дракон

Для решения данной задачи, нам потребуется использовать рекурсию. Давайте начнем с создания функции, которая будет подсчитывать количество способов перемещения пчелки из клетки A в клетку B.

cpp
#include
using namespace std;

int countPaths(int n, int i, int j) {
// базовый случай - если достигнута клетка B
if (i == n-1 && j == n-1) {
return 1;
}

// рекурсивные случаи:
int paths = 0;

// перемещение вниз
if (i+1 < n) {
paths += countPaths(n, i+1, j);
}

// перемещение вниз-вправо
if (i+1 < n && j+1 < n) {
paths += countPaths(n, i+1, j+1);
}

// перемещение вверх-вправо
if (j+1 < n) {
paths += countPaths(n, i, j+1);
}

return paths;
}

int main() {
int n;
cin >> n;

// вызываем функцию countPaths и выводим результат
int paths = countPaths(n, 0, 0);
cout << paths << endl;

return 0;
}


В данном коде, функция `countPaths` принимает три аргумента: `n` - размер поля, `i` - текущая строка и `j` - текущий столбец. Она рекурсивно вызывает сама себя, перемещая пчелку вниз, вниз-вправо или вверх-вправо, и подсчитывает количество возможных путей. Базовый случай - достижение клетки B, в котором возвращается значение 1.

В функции `main` мы считываем размер поля `n`, вызываем функцию `countPaths` и выводим полученный результат.
Знаешь ответ?
Задать вопрос
Привет!
hello