递归获取斐波那契数列
get Fibonacci number index, recursively
我需要一个递归函数,它可以得到传递给它的斐波那契数的索引。
比如上面提到的函数当我们传8时应该return6;或者它应该 return 8 当我们通过 21.
如有任何帮助,我们将不胜感激。
谢谢!
这是我的解决方案!
它运行良好,return 符合我的预期。
确保 a 和 b 在函数声明中有自己的默认值。
int getTermIndex(int, int&, int=1, int=1);
函数实现:
int getTermIndex(int number, int& i, int a, int b) {
if(number==0) return i;
else if(number==1){
i++;
return i;
}
int nextFib = a+b;
if(nextFib==number || nextFib>number) {
i += 3;
return i;
}
else {
i++;
getTermIndex(number, i, b, nextFib);
}
}
函数用法:
int number;
cin >> number;
int nth=0;
getTermIndex(number, nth);
我需要一个递归函数,它可以得到传递给它的斐波那契数的索引。
比如上面提到的函数当我们传8时应该return6;或者它应该 return 8 当我们通过 21.
如有任何帮助,我们将不胜感激。 谢谢!
这是我的解决方案!
它运行良好,return 符合我的预期。
确保 a 和 b 在函数声明中有自己的默认值。
int getTermIndex(int, int&, int=1, int=1);
函数实现:
int getTermIndex(int number, int& i, int a, int b) {
if(number==0) return i;
else if(number==1){
i++;
return i;
}
int nextFib = a+b;
if(nextFib==number || nextFib>number) {
i += 3;
return i;
}
else {
i++;
getTermIndex(number, i, b, nextFib);
}
}
函数用法:
int number;
cin >> number;
int nth=0;
getTermIndex(number, nth);