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

РЕШИТЬ ТОЛЬКО НА С++
Лесенки
Лесенкой называется набор кубиков, в котором каждый следующий горизонтальный слой содержит меньше кубиков, чем слой под ним.



Требуется подсчитать количество различных лесенок, которые могут быть построены ровно из N кубиков.

Входные данные

Вводится одно число N(1≤N≤50).

Выходные данные

Выведите искомое количество лесенок.

Примеры
Ввод
3
Вывод
2

Ответы

Автор ответа: fkid2006
5

Ответ:

#include <iostream>

using namespace std;

int func(int a, int b)

{

  if(!b)

      return 1;

  int count = 0;

  for(int i = 1; i < a; ++i)

    if(b - i >= 0)

      count += func(i, b - i);

  return count;

}

int main()

{

  int n;

  cin >> n;

  int count = 0;

  for(int i = 1; i <= n; ++i)

      count += func(i, n - i);

  cout << count;

  return 0;

}

Похожие вопросы