如何使用"wrapper function"调用没有参数的递归函数 n 次?

How do I use a "wrapper function" to call a recursive function without parameters n amount of times?

本文关键字:递归函数 参数 wrapper 何使用 function 调用      更新时间:2023-10-16

因此,对于家庭作业,我们必须对黄金比例(n+(1/(n+1/(..))进行部分分数定义,但我们需要递归地进行。好吧,没问题,我能做到。。。。但是我们需要调用这个递归函数1000次,并且不能使用参数函数。教授说,为了将其限制在有限的调用次数内,我们可以使用包装函数,但我从未在课堂上听说过这个术语,也不知道从哪里开始使用包装函数?有人能帮我吗?

如果你能告诉我如何做到这一点,而不给我部分分数本身的解决方案,我在这门课上做得很差,我想自己学习。我只需要包装器功能方面的帮助。谢谢!

"包装函数"是一个包装另一个函数的函数。它本质上是另一个调用实际函数的函数。

作为一个简单且不相关的示例,考虑您想要获得x10的最大值。你可以像value = std::max(x, 10)一样直接调用std::max,但你不想一直传递值10,所以你制作了一个包装器函数:

int max10(int x)
{
     return std::max(x, 10);
}

函数max10是一个包装函数。


问题的一个可能解决方案是不使实际函数递归,而是使包装函数递归。包装器函数将接受一个参数n,这是它应该进行的递归次数。如果n大于零,则调用实际函数,然后使用参数n - 1递归调用包装函数。