Find how many even Fibonacci numbers are available in the first d numbers.
Consider the following first 14 numbers
1 1 2 3 5 8 13 21 34 55 89 144 233 377 ...
4 of them are even.
Big number is a problem. Instead we can find the regular pattern in which those even and odd numbers appear. Then everything becomes simple and easy.
i have the program on my matlab it work normaly but cody does not accepet the code don't know why?????
function y = evenFibo(n)
y(1) = 1;y(2) = 1;
for i = 3:n
y(i) = y(i-1) + y(i-2);
end
e = y;
E = mod(e,2) == 0;
evennumbers = e(E);
y = length(evennumbers);
if n > 2
fprintf('The even Fibo number is: %d',y)
end
end
What's wrong with this?? It's working in matlab for me .
me2
The fibonacci() function is in a toolbox. Only functions in vanilla Matlab are recognized by Cody.
My code works to d=50 and fails on the higher values in the test suite. I think it is a hardware-limited rounding error (?swamping) with very large numbers. When I test eps(fibonacci(100)) on my system, the answer is 6.5 ie my system can not accurately distinguish odd from even at that large a number.
Leo, your theory is correct: The numbers that you're calculating for d>50 are too large to be represented by a 32-bit digit, and won't be calculated correctly for mod(x,2). Think very carefully about the number pattern in the Fibonacci sequence, and see if a pattern emerges.
Indeed, My code works until the d = 50 because it's a large number, so our algorithm is correct we should not worry about it, I think we have succeed in this challenge.
Not a true solution. Would fail if Test Suite were expanded.
Not a general solution. Will fail if Test Suite expanded.
1579 Solvers
Back to basics 22 - Rotate a matrix
682 Solvers
The sum of the numbers in the vector
341 Solvers
413 Solvers
255 Solvers