I agree that this isn't really solving it, though it is an acceptable solution. Afterall since he gave you the link, it's not hard to realize that there is a method that will perform the task for you. That being said, you get more out of it as a beginner trying to solve it and knowing that there is a shortcut for it.
This is an example of recursion. The concept is present in many programming languages, and mathematics in general.
The equation for a single fibonacci number is dependent on the two previous fibonacci numbers (for all but n == 1 && n == 2). These are determined by either:
Calling the fibonacci method again from within the fibonacci method itself (which may in turn call itself many more times, until it hits a seed value).
Hitting an n value that acts as a seed. These seed values are required to prevent infinite recursion, and are implemented as the following lines in this solution:
Totally agreed.
Agreed. No idea what is being asked
Well, the two possible values are -1 and 11:
In ruby, the result always have the same sign as the second operand (12 in this case) so it must be 11.
The resulting sign when doing modulus between negative numbers varies between different programming languages. There is a table in the right margin here that shows the chaos: http://en.wikipedia.org/wiki/Modulo_operation#Remainder_calculation_for_the_modulo_operation.
I agree that this isn't really solving it, though it is an acceptable solution. Afterall since he gave you the link, it's not hard to realize that there is a method that will perform the task for you. That being said, you get more out of it as a beginner trying to solve it and knowing that there is a shortcut for it.
While the code is compact, I think the chained ternary is hard to read
why does -1 % 12 equal 11?
Thanks!
I also found this useful for anyone newer
https://www.youtube.com/watch?v=zg-ddPbzcKM
This is an example of recursion. The concept is present in many programming languages, and mathematics in general.
The equation for a single fibonacci number is dependent on the two previous fibonacci numbers (for all but n == 1 && n == 2). These are determined by either:
n
value that acts as a seed. These seed values are required to prevent infinite recursion, and are implemented as the following lines in this solution:For a ruby specific explanation of recursion, check out this StackOverflow Post.
For a more broad, mathematical explanation (including fibonacci numbers) see the wiki article on Recurrence relations.
Can someone explain how this works?
Newer to ruby and don't understand this method with a method call...?
nth_fibonacci(n-1)+nth_fibonacci(n-2)
My last test is also failing but the original tie in the original 3 tests is fine