About
Kodeclik is an online coding academy for kids and teens to learn real world programming. Kids are introduced to coding in a fun and exciting way and are challeged to higher levels with engaging, high quality content.
Popular Classes
Scratch Coding
Minecraft Coding
TinkerCAD
Roblox Studio
Python for Kids
Javascript for Kids
Pre-Algebra
Geometry for Kids
Copyright @ Kodeclik 2025. All rights reserved.
Fibonacci numbers are named after the Italian mathematician Leonardo Pisano (Leonardo of Pisa, Italy). They are known to represent many natural phenomena such as how rabbits grow, how leaves branch, the structure of shells, and the formation of galaxies.
The Fibonacci numbers are described by the sequence 1,1,2,3,5,8… where each number (after the first two) is the sum of the two numbers preceding it. Thus 1+1=2 so 2 is the third number. 2+1=3 so 3 is the fourth number, and so on. The Fibonacci numbers go on forever.
Here is a simple Python program to generate Fibonacci numbers. The program is recursive in nature. The two base cases generate the first two Fibonacci numbers 1 and 1. The inductive step calls the function recursively to generate new numbers.Then in the main driver program, we use a for loop to print the first 25 Fibonacci numbers.
The result is:
Try changing 25 to a higher number, say 50. You will notice that the program gets really slow. Why? Why does it take so much time for Python to simply add numbers and print them in order? The reason is because the recursive calls repeatedly go all the way back to the first number numerous times for each repeated invocation of the function.
To address this inefficiency issue, we must do what is called “memoization”. Memoization is simply book-keeping, keeping a ready reference memory of previously computed numbers so you don’t keep recomputing them. Here is our new program:
We are now easily able to print the first 50 Fibonacci numbers:
The golden ratio is the number 1.618034… given by the solution to the equation x^2 = x + 1. It has a very interesting relationship to the Fibonacci sequence. The ratio of successive Fibonacci numbers approaches the golden ratio. Here’s a program to explore this connection.
This gives the output (last few lines shown):
Fibonacci numbers have a very interesting property. Take two adjacent Fibonacci numbers, e.g., 5 and 8. Note that 5 miles = 8 kilometers (approximately)! Wow! Let us take another example: 55 and 89. 55 miles is approximately 89 kilometers. The reason for this is because the conversion ratio between miles and kilometers is approximately the golden ratio.
Interested in more things Python? See our blogpost on Python's enumerate() capability. Also if you like Python+math content, see our blogpost on Magic Squares and our post on exploring multiples of 37 with Python. Finally, master the Python print function!
Want to learn Python with us? Sign up for 1:1 or small group classes.
def fib(n):
if (n==0) or (n==1):
return(1)
else:
return fib(n-1)+fib(n-2)
for i in range(25):
print(i+1,fib(i))1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
17 1597
18 2584
19 4181
20 6765
21 10946
22 17711
23 28657
24 46368
25 75025memoized = {0: 1, 1: 1}
def fib(n):
if (n in memoized):
return(memoized[n])
else:
memoized[n] = fib(n-1) + fib(n-2)
return(memoized[n])
for i in range(50):
print(i+1,fib(i))1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
17 1597
18 2584
19 4181
20 6765
21 10946
22 17711
23 28657
24 46368
25 75025
26 121393
27 196418
28 317811
29 514229
30 832040
31 1346269
32 2178309
33 3524578
34 5702887
35 9227465
36 14930352
37 24157817
38 39088169
39 63245986
40 102334155
41 165580141
42 267914296
43 433494437
44 701408733
45 1134903170
46 1836311903
47 2971215073
48 4807526976
49 7778742049
50 12586269025memoized = {0: 1, 1: 1}
def fib(n):
if (n in memoized):
return(memoized[n])
else:
memoized[n] = fib(n-1) + fib(n-2)
print("\t Golden ratio=",fib(n-1)/fib(n-2))
return(memoized[n])
for i in range(50):
print(i+1,fib(i))….
Golden ratio= 1.618033988749895
42 267914296
Golden ratio= 1.618033988749895
43 433494437
Golden ratio= 1.618033988749895
44 701408733
Golden ratio= 1.618033988749895
45 1134903170
Golden ratio= 1.618033988749895
46 1836311903
Golden ratio= 1.618033988749895
47 2971215073
Golden ratio= 1.618033988749895
48 4807526976
Golden ratio= 1.618033988749895
49 7778742049
Golden ratio= 1.618033988749895
50 12586269025