【发布时间】:2015-02-09 22:10:51
【问题描述】:
我想在我的函数中打印从 1 到 n 的斐波那契数列。 我知道我可以通过编写一个常规的斐波那契并在 for 块中使用它来打印 1 到 N 来做到这一点。像这样:
#include <iostream>
using namespace std;
int fibo(int);
int main(){
for (int i = 0; i < 5; i++)
cout << fibo(5);
system("pause");
return 0;
}
int fibo(int n){
if (n == 1 || n == 2)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
但我的问题是我不能没有 for,IN 我的功能 我的意思是我想用递归算法打印它 这是我到目前为止的代码
#include <iostream>
using namespace std;
int fibo(int, bool);
int main(){
fibo(5, false);
system("pause");
return 0;
}
int fibo(int n, bool IsPrinted){
if (n == 1 || n == 2){
if (!IsPrinted)
cout << 1 << endl;
return 1;
}
else{
int temp = fibo(n - 1, IsPrinted) + fibo(n - 2, IsPrinted);
if (!IsPrinted){
cout << temp << endl;
IsPrinted = true;
}
return temp;
}
}
【问题讨论】:
-
“没有
for,我无法做到”是什么意思?结合您的代码解释不能这个词。这段代码做错了什么?此外,如果for循环确实对您有用,请在此处与您的代码一起发布它,有人会指出差异的原因。 -
@barakmanos 我编辑了问题!
-
如果你调用 "fibo(5, true)" 会打印什么?
-
@Aleph0 它什么也不打印!
标签: c++ algorithm recursion fibonacci