在C++中编写递归函数的最佳方法?

Ben*_*Ben 1 c++ algorithm recursion function

问题
我想知道这是否是实现变深度递归的可行方法,这样我就可以在每个步骤运行一个函数,并为描述问题提供更好的/其他解决方案.
描述
假设我希望有一个函数以模式填充数组,
x,y,x,y,x,y其中x和y是由某些算法定义的变量
,x,y,z,x,y,z其中x,y和z是由同一算法定义的变量.

对于所有数量的变量,这应该继续.这是实现它的可行方法吗?

void recurse_n(int n)
{
    while(n > 0)
    {
        --n;
        recurse_n(n);
        n = 0;
        // Use algorithm here
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:删除了之前提到的错误的返回类型.Brainfart.

Dav*_*ton 6

因此,根据您的评论,您想知道设置递归函数的最佳方法.你所做的将会起作用,但它是令人费解的,有点令人困惑.我要做的是简化它:

void recurse_n(int n) {
    if (n <= 0) {
        // Break-out condition
        return;
    }

    --n;
    recurse_n(n);

    // Your algorithm stuff here.
}
Run Code Online (Sandbox Code Playgroud)

这样可以更容易地看到发生了什么.我要添加的一件事是你可能想在调用recurse_n之前做算法的东西,但这完全取决于你的算法在做什么.

如果你考虑它,我写它的方式,它会递归,直到n小于或等于0才能进行任何算法工作.可能是你想要算法工作然后递归.