Skip to content

Commit fee25db

Browse files
committed
docs: kata description
1 parent 9f6d641 commit fee25db

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

kata/3-kyu/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
- [Battleship field validator](battleship-field-validator "52bb6539a4cf1b12d90005b7")
22
- [Make a spiral](make-a-spiral "534e01fbbb17187c7e0000c6")
33
- [Path Finder #3: the Alpinist](path-finder-number-3-the-alpinist "576986639772456f6f00030c")
4+
- [The Millionth Fibonacci Kata](the-millionth-fibonacci-kata "53d40c1e2f13e331fc000c26")
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# [The Millionth Fibonacci Kata](https://www.codewars.com/kata/the-millionth-fibonacci-kata "https://www.codewars.com/kata/53d40c1e2f13e331fc000c26")
2+
3+
The year is 1214. One night, Pope Innocent III awakens to find the the archangel Gabriel floating before him. Gabriel thunders to the pope:
4+
5+
> Gather all of the learned men in Pisa, especially Leonardo Fibonacci. In order for the crusades in the holy lands to be successful, these men must calculate the *millionth* number in Fibonacci's recurrence. Fail to do this, and your armies will never reclaim the holy land. It is His will.
6+
7+
The angel then vanishes in an explosion of white light.
8+
9+
Pope Innocent III sits in his bed in awe. *How much is a million?* he thinks to himself. He never was very good at math.
10+
11+
He tries writing the number down, but because everyone in Europe is still using Roman numerals at this moment in history, he cannot represent this number. If he only knew about the invention of zero, it might make this sort of thing easier.
12+
13+
He decides to go back to bed. He consoles himself, *The Lord would never challenge me thus; this must have been some deceit by the devil. A pretty horrendous nightmare, to be sure.*
14+
15+
Pope Innocent III's armies would go on to conquer Constantinople (now Istanbul), but they would never reclaim the holy land as he desired.
16+
17+
---------------------------
18+
19+
In this kata you will have to calculate `fib(n)` where:
20+
21+
fib(0) := 0
22+
fib(1) := 1
23+
fib(n + 2) := fib(n + 1) + fib(n)
24+
25+
Write an algorithm that can handle `n` up to `2000000`.
26+
27+
Your algorithm must output the exact integer answer, to full precision. Also, it must correctly handle negative numbers as input.
28+
29+
**HINT I**: Can you rearrange the equation `fib(n + 2) = fib(n + 1) + fib(n)` to find `fib(n)` if you already know `fib(n + 1)` and `fib(n + 2)`? Use this to reason what value `fib` has to have for negative values.
30+
31+
**HINT II**: See https://web.archive.org/web/20220614001843/https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4

0 commit comments

Comments
 (0)