显示有关楼梯问题的步骤

时间:2019-10-18 04:16:47

标签: c++ algorithm

我正在尝试确定如何显示具有自定义间隔的爬升到n级台阶的各个不同方式。

例如,如果步数= 8并且间隔为2和3,则我希望显示屏打印出{2,2,2,2}{2,3,3}{3,2,3}{3,3,2}。我尝试实现一种遵循递归方法的方法,该方法曾经用于计算方法的数量,但我什至认为我没有在解决问题的正确道路上。

int recursiveMethod(int n, vector<int> intervals, vector<int> &test, vector<int> &intervalsByStep)
{
    int count = 0;

    if (n < 0)
    {            //base case 1
        return 0;
    }

    if (n == 0)
    {           //base case 2
        intervalsByStep.insert(intervalsByStep.end(), test.begin(), test.end());
        for (int i = 0; i < intervalsByStep.size(); i++)
        {
            cout << intervalsByStep.at(i);
        } 

        cout << "\n";

        test.clear();
        return 1;
    }

    for (int element : intervals)
    {
        test.push_back(element);
        count += recursiveMethod(n - element, intervals, test, intervalsByStep);
    }
    return count;
}

0 个答案:

没有答案