#include"pch.h"
#include<iostream>
using namespace std;
long long Fibonacci1(unsigned int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
return Fibonacci1(n - 1) + Fibonacci1(n - 2);
}
long long Fibonacci2(unsigned n)
{
int result[2] = { 0,1 };
if (n < 2)
return result[n];
long long fibNMinusOne = 1;
long long fibNMinusTwo = 0;
long long fibN = 0;
for(unsigned int i =2;i<=n;++i)
{
fibN = fibNMinusOne + fibNMinusTwo;
fibNMinusTwo = fibNMinusOne;
fibNMinusOne = fibN;
}
return fibN;
}
int main()
{
//test
//功能测试(如输入3,5,10)
cout << "功能测试:\n";
cout << Fibonacci1(3) << endl;
cout<< Fibonacci1(5)<<endl;
cout<< Fibonacci1(10)<<endl;
cout << Fibonacci2(3) << endl;
cout << Fibonacci2(5) << endl;
cout << Fibonacci2(10) << endl;
//边界值测试(0,1,2)
cout << "边界值测试:\n";
cout << Fibonacci1(0) << endl;
cout << Fibonacci1(1) << endl;
cout << Fibonacci1(2) << endl;
cout << Fibonacci2(0) << endl;
cout << Fibonacci2(1) << endl;
cout << Fibonacci2(2) << endl;
//性能测试(40,50,100)
cout << "性能测试:\n";
cout << Fibonacci2(40) << endl;
cout << Fibonacci2(50) << endl;
cout << Fibonacci2(100) << endl;
cout << Fibonacci1(40) << endl;
cout << Fibonacci1(50) << endl;
cout << Fibonacci1(100) << endl;
}