# -*- coding: utf-8 -*-
# Suite de  Fibonnaci F(n)=F(n-1)+F(n-2)

def fibo(n) :
    # calcul du dernier terme de la suite
    if type(n)!=int: # vérifie que la paramètre est entier
        R = ' le paramètre doit être un entier'
    else :
        if n < 0 :
            R = None
        if n == 0 : # on donne F(0)
            R = 0
        if n == 1 : # on donne F(1)
            R = 1
        else :
            k = 1
            a,b,c = 1, 1,0  # Initialisation de la suite
            while k < n  :
                c = a+b    # Calcul des termes de la suite F(n) = F(n-1) + F(n-2)
                a,b = b,c  # Décalage des termes
                k = k+1
            R = c
    return R

def fibo2(n) :
    # renvoie de toute la liste jusqu'à F(n)
    l = [1,1]
    if n < 0 :
        return None
    if n == 0 :
        return 0
    if n == 1 :
        return 1
    for i in range(2,n+1):
        l.append(l[i-2] + l[i-1])
    return l

