代码:
#include <iostream>
using namespace std;
//迭代求解斐波那契数列
int Fibonacci(int n)
{
if (n <= 0)
throw new exception("Invalid Parameters");
if (n == 1 || n == 2)
return 1;
int Fib_1 = 1;
int Fib_2 = 1;
int Fib_n = 0;
for (int i = 3; i <= n; i++)
{
Fib_n = Fib_1 + Fib_2;
Fib_1 = Fib_2;
Fib_2 = Fib_n;
}
return Fib_n;
}
//递归求解
int Recursive_Fib(int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
return Recursive_Fib(n - 1) + Recursive_Fib(n-2);
}
int main()
{
int n = 8;
cout <<"迭代法: "<<Fibonacci(n) << endl;
cout << "递归法: " << Recursive_Fib(n) << endl;
cout << endl;
system("pause");
return 0;
}
测试: