Informatique

Question

Bonsoir

J’ai un programme à réaliser en Nsi qui est le suivant: Écrire un programme qui donne la somme de tous les nombres impairs présent dans la suite de Fibonacci et qui ne dépasse pas 4 millions


Suite de fibonacci:La suite de Fibonacci est une suite d’entier qui commence par un puis un et ensuite chaque nom est la somme des deux nombres précédent ainsi, elle débute par un, 1,2, 3,5 etc.


Les 10 premiers nombres cette suite sont : 1,1,2,3,5,8,13,21,34,55

Somme des nombres impaires de cette suite : 1 + 1 + 3 + 5 + 13 + 21 + 55 donc 99 j’ai donc commencé à faire le programme qui renvoie les 10premiers termes de la suite fibonacci ci dessous ;

N=10

u=range(0,N)

u[0]=1

for i in u[2:N]:

u[i]=u[i-1]+u[i-2]


print(u)

Il faut ensuite que je modifie le programme pour qu’il affiche uniquement la somme des nombres impairs en utilisant la commande « If b%2!=0 »


( il est aussi précisé sur ma feuille qu’il faut compter les impaires inférieurs à 4 millions donc on doit transformer la boucle  « for » en boucle « While »)

Sauf que je n’y arrive vraiment pas je cherche depuis cette après midi

1 Réponse

  • J'ai un peu changé ton code:

    import sys

    # N = int(input("Entrer le maximum de la suite : "))

    N = int(10)

    u=list(range(0,N))

    u[0]=1

    math = 2

    for i in u[2:N]:

       u[i]=u[i-1]+u[i-2]

       if u[i] % 2 != 0:

           math = float(math) + float(u[i])

    print("La somme est", math)

    Compter les impaires inférieurs à 4 millions

    import sys

    u=list(range(0,50))

    u[0]=1

    count = 1

    i = 1

    while u[i-1] + u[i-2] < 4000000:

       i+=1

       u[i]=u[i-1]+u[i-2]

       if u[i] % 2 != 0 :

           count += 1

    print("Count: ", count)

    Les impaires inférieur à 4.000.000: 1,1,3,5,13,21,55,89,233,377,987,1597,4181,6765,17711,28657,75025,121393,317811,514229,1346269,2178309

    Il y en a 22

    Image en pièce jointe de la réponse SmartMind
    Image en pièce jointe de la réponse SmartMind

Autres questions