我正在尝试确定如何显示具有自定义间隔的爬升到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;
}