因此,对于家庭作业,我们必须进行黄金比例的部分分数定义(n +(1 /(n + 1 /(.....)但我们需要递归地进行。好的,不是问题我能做到这一点....但我们需要调用这个递归函数1000次并且不能使用参数函数。教授说要将它限制为有限数量的调用我们可以使用包装函数,但我从未听说过这个术语在课堂上并且不知道从哪里开始包装函数?有人可以帮助我吗?
如果你能告诉我如何在不向我发送部分小部件本身的解决方案的情况下做到这一点,我在这堂课中做得很差,并希望自己学习。我只需要有关包装函数的帮助。三江源!
答案 0 :(得分:1)
“包装函数”是包装另一个函数的函数。它本质上是另一个调用实际函数的函数。
作为一个简单且无关的示例,请考虑您希望获得x
和10
的最大值。您可以像value = std::max(x, 10)
一样直接致电std::max
,但您不想一直传递值10
,因此您需要制作包装功能:< / p>
int max10(int x)
{
return std::max(x, 10);
}
函数max10
是一个包装函数。
您的问题的一个可能的解决方案是不使递归的实际函数,而是包装函数。包装函数将接受一个参数n
,这是它应该进行的递归次数。如果n
大于零,则调用实际函数,然后使用参数n - 1
对包装函数进行递归调用。