1.写出菲波拉契数列自底向上的非递归动态规划算法或自顶向下的递归动态规划算法(备忘录方法)。
输入:输入一个数字。
输出:输出为Fibonacci数列的值。
示例:输入:5 ,输出:8
Fibonacci数列可以递归地定义为:
#include<iostream>
using namespace std;
int Fibonacci(int n)//递归
{
if (n==0||n==1)
{
return 1;
}
if (n>1)
{
return Fibonacci(n - 1) + Fibonacci(n-2);
}
return -1;
}
int sum = 0;
int Fibonacci1(int n)//非递归
{
int one = 1;
int two = 1;
int sum = 0;
for (int i = 1; i < n; i++)
{
sum = one + two;
two = one;
one = sum;
}
return sum;
}
int main()
{
int n;
cin >> n;
cout << Fibonacci1(n);
return 0;
}