题意描述:
补充:
递归是将一个问题转化成相同的子问题,但是递推是先计算子问题,然后再推出原问题
AC代码
/*
#include <iostream>
using namespace std;
const int N = 46;
int fn[N];
int main()
{
int n;
cin >> n;
fn[1] = 0, fn[2] = 1;
for (int i = 3; i <= n; i ++)
fn[i] = fn[i - 1] + fn[i - 2];
for (int i = 1; i <= n; i ++)
cout << fn[i] << " ";
cout << endl;
return 0;
}
*/
// 除开上面的解法之外,我们还可以使用滚动数组
#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 fn = a + b; // 关键步骤,向后滚动
a = b, b = fn;
}
return 0;
}