转化为递归搜索树
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int f(int n)
{
if (n == 1) return 1;
if (n == 2) return 2;
return f(n - 1) + f(n - 2);
}
int main()
{
int n;
cin >> n;
cout << f(n) <<endl;
return 0;
}
第二次使用递推方式
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
/*普通变量写法,节省空间*/
int a = 0, b = 1;
for (int i = 1; i <= n; i++) {
cout << a << ' ';
int c = a + b;
a = b;
b = c;
}
/*数组递推
int f[46];
f[1] = 0, f[2] = 1;
for (int i = 3; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
for (int i = 1; i <= n; i++) {
cout << f[i] << ' ';
}
*/
return 0;
}