我必须实现一个计数器来计算此递归函数中加法运算的数量,但不允许使用全局变量。你知道怎么做吗?例如,如果函数必须调用自己的空闲时间,则必须在返回之前在函数末尾将我的计数器加三。
long lindh(unsigned int n) {
long lin = 0;
if (n == 1 || n == 2) {
lin = 1;
} else {
lin = 1 * lindh(n - 1) + 3 * lindh(n - 2);
}
return lin;
}
int main() {
long b = 0;
b = lindh(24);
cout << "lindhauer " << b << endl;
return 0;
}
最佳答案
您可以将函数签名更改为:
long lindh(unsigned int n, int &count)
在初始调用和每个递归调用中,都将要计数的变量传递给它。在适当的位置递增
count
。