Предмет: Информатика, автор: x9yt7bgf9b

Напишите пожалуйста на с++
Пчёлка

Представьте себе пчелиные соты — поле из шестиугольных клеток со стороной, состоящей из N
клеток. В верхней левой клетке A

находится пчёлка. За один ход она может переползти на клетку вниз, на клетку вниз-вправо или на клетку вверх-вправо (вверх и влево пчёлка не ползает).

Требуется написать программу, которая найдёт количество способов, которыми пчёлка может переместиться из клетки A
в противоположную клетку B по указанным правилам.

Ответы

Автор ответа: vimmortal2
1

Программа:
С++:

#include <iostream>

using namespace std;

int main() {

   int N, m, i, j;

   cin >> N;

   m = 2 * N - 1;

   

   int fields[m][m];

   for(i = 0; i < m; i++)

       for(j = 0; j < m; j++)

           fields[i][j] = 0;

   

   for(i = 0; i < N; i++)

       fields[i][0] = fields[0][i] = 1;

   

   for(i = 1; i < m; i++)

       for(j = 1; j < m; j++)

           if(N > abs(i - j))

               fields[i][j] = fields[i - 1][j] + fields[i][j - 1] + fields[i - 1][j - 1];

   cout << fields[m - 1][m - 1];

   return 0;

}

Объяснение:

Сначала регистрируем переменные целочисленного типа: N - для ввода, m - для количества сот, i - для циклов, j - для цикла. Далее вводится само N, находится m по формуле: m = 2 * N - 1.

Регистрируется массив из m на m элементов, который заполняется нулями в цикле. Далее, с помощью ещё одного цикла, некоторые элементы заполняются единицами для будущих вычислений в цикле. И в следующем цикле i принимает значения от 1 до m - 1, j принимает значения от 1 до m - 1 (i - номер строки, j - номер столбца). Если N больше абсолютного (положительного) числа разницы i - j, то выполняется определенное действие. Вот и вся логика.

В конце выводится элемент массива с индексом столбца m - 1 и индексом строки m - 1.

Результат:

2

11

3

291

#SPJ1

Похожие вопросы
Предмет: Русский язык, автор: ajugindima1