Exemplo n.º 1
0
#include <vector>

std::vector<long long> fibonacci(80, 0);

class Solution {
public:
    long long solution(int N) {
         if (N < 2) 
            return N;

        if (fibonacci[N] != 0) 
            return fibonacci[N];
        
        return fibonacci[N] = solution(N-1) + solution(N-2);
    }
};

TEST_CASE( "Fibonacci are computed", "[Fibonacci]" ) {
    Fibonacci object = Fibonacci();
    REQUIRE( object.solution(0) == 0 );
    REQUIRE( object.solution(1) == 1 );
    REQUIRE( object.solution(2) == 1 );
    REQUIRE( object.solution(4) == 3 );
    REQUIRE( object.solution(5) == 5 );
    REQUIRE( object.solution(6) == 8 );
    REQUIRE( object.solution(7) == 13 );
    REQUIRE( object.solution(8) == 21 );
    REQUIRE( object.solution(9) == 34 );
    REQUIRE( object.solution(10) == 55 );
}