w3resource

Python: Find the first n Fibonacci numbers

Python Programming Puzzles: Exercise-51 with Solution

Write a Python program to find the first n Fibonacci numbers.

Input: 10
Output:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Input: 15
Output:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]
Input: 50
Output:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025]

Sample Solution-1:

Python Code:

def test(n):
    a = [1, 1]
    while len(a) < n: a += [sum(a[-2:])]
    return a[:n]
n = 10
print("\nFind the first",n,"Fibonacci numbers:")    
print(test(n))
n = 15
print("\nFind the first",n,"Fibonacci numbers:")    
print(test(n))
n = 50
print("\nFind the first",n,"Fibonacci numbers:")    
print(test(n))

Sample Output:

Find the first 10 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

Find the first 15 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

Find the first 50 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025]

Flowchart:

Flowchart: Python - Find the even-length words and sort them by length.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Sample Solution-2:

Python Code:

def test(n):
    result = [1, 1]
    while len(result) < n:
        result.append(result[-1] + result[-2])
    return result
n = 10
print("Find the first",n,"Fibonacci numbers:")    
print(test(n))
n = 15
print("\nFind the first",n,"Fibonacci numbers:")    
print(test(n))
n = 50
print("\nFind the first",n,"Fibonacci numbers:")    
print(test(n))

Sample Output:

Find the first 10 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

Find the first 15 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

Find the first 50 Fibonacci numbers:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025]

Flowchart:

Flowchart: Python - Find the even-length words and sort them by length.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Python Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Find the even-length words and sort them by length.
Next: Reverse the case of all strings. For those strings, which contain no letters, reverse the strings.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Python: Tips of the Day

Clamps num within the inclusive range specified by the boundary values x and y:

Example:

def tips_clamp_num(num,x,y):
  return max(min(num, max(x, y)), min(x, y))
print(tips_clamp_num(2, 4, 6))
print(tips_clamp_num(1, -1, -6))

Output:

4
-1