На С++ Лесенки

Лесенкой называется набор кубиков, в котором каждый следующий горизонтальный слой содержит меньше кубиков, чем слой под ним.

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

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

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

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

Ответы

Ответ дал: dashenkavorobyova
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;

}

Объяснение:

у меня прошло :)


fkid2006: Брат, пожалуйста, ты сделал 3, 4, 5 и 6 ?? Мне срочно!!
fkid2006: Или не брат, мне срочно!!
fkid2006: тут третья: https://znanija.com/task/43914640?answeringSource=greatJob%2FquestionPage%2F2
dashenkavorobyova: сорян, я хз
fkid2006: блин, ну ладно
tamarakirkinadze: Ребят, киньте первую, одна попытка осталась
Dre4nt: 4321121 это 1
Вас заинтересует