Cody

# Problem 44628. The other half of the Fibonacci sequence

Solution 3717963

Submitted on 18 Nov 2020 by David Hill
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
% Banning these to discourage hard-coded answers and silly 'scoring cheats'. Sorry if it disrupts some legitimate usage. % Please don't try any other hacks or workarounds. assessFunctionAbsence({'str2num','str2double','regexp', 'regexpi'}, 'FileName','negativeRabbits.m'); FR = fileread('negativeRabbits.m'); msg = 'Don''t hard-code your ''solution''.'; assert( ~any( cellfun( @(z) contains(FR, z) , {'54800875592', '716768017756', '9845401187926'} ) ) , msg )

2   Pass
% I don't think it's very good style to be using "ans". RE = regexp(fileread('negativeRabbits.m'), '\w+', 'match'); tabooWords = {'ans'}; testResult = cellfun( @(z) ismember(z, tabooWords), RE ); msg = ['Please do not include the following banned strings in your code!' char([10 13]) ... strjoin(RE(testResult)) char([10 13])]; assert(~any( cellfun( @(z) ismember(z, tabooWords), RE ) ), msg)

3   Pass
% This is important. assert( isequal( class(negativeRabbits(0)) , 'int64' ) , 'Wrong data type.')

4   Pass
% Test Suite shall ensure it only ever checks n < 3. assert( isequal(negativeRabbits(+2), 1) , 'Failed at n =+2.' ) assert( isequal(negativeRabbits(+1), 1) , 'Failed at n =+1.' ) assert( isequal(negativeRabbits( 0), 0) , 'Failed at n = 0.' ) assert( isequal(negativeRabbits(-1), 1) , 'Failed at n =-1.' )

5   Pass
for n = 0 : -1 : -10 assert( isequal(negativeRabbits(n)+negativeRabbits(n+1), negativeRabbits(n+2)) , ['Failed at n =' num2str(n) '.']) end;

6   Pass
for n = -10 : -1 : -20 assert( isequal(negativeRabbits(n)+negativeRabbits(n+1), negativeRabbits(n+2)) , ['Failed at n =' num2str(n) '.']) end;

7   Pass
for n = -20 : -1 : -40 assert( isequal(negativeRabbits(n)+negativeRabbits(n+1), negativeRabbits(n+2)) , ['Failed at n =' num2str(n) '.']) end;

8   Pass
for n = -40 : -1 : -77 assert( isequal(negativeRabbits(n)+negativeRabbits(n+1), negativeRabbits(n+2)) , ['Failed at n =' num2str(n) '.']) end;

9   Pass
% This is difficult, but feasible within the parameters of the problem. for n = -77 : -1 : -92 assert( isequal(negativeRabbits(n)+negativeRabbits(n+1), negativeRabbits(n+2)) , ['Failed at n =' num2str(n) '.']) end;

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!