CMU Coding Bootcamp
1from math import sqrt
2
3
4def almostEqual(x: float, y: float) -> bool:
5 return abs(x - y) < 10**-9
6
7
8def nthFibonacciNumber(n: int) -> float:
9 """Return the nth Fibonacci number."""
10 n += 1
11 return ((1 + sqrt(5)) ** n - (1 - sqrt(5)) ** n) / (sqrt(5) * 2**n)
12
13
14print("Testing nthFibonacciNumber()...", end="")
15assert almostEqual(nthFibonacciNumber(0), 1)
16assert almostEqual(nthFibonacciNumber(1), 1)
17assert almostEqual(nthFibonacciNumber(2), 2)
18assert almostEqual(nthFibonacciNumber(3), 3)
19assert almostEqual(nthFibonacciNumber(4), 5)
20assert almostEqual(nthFibonacciNumber(5), 8)
21
22print("Passed!")