Puissance de 2 [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019
-
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
-
Bonjour,
J'ai un devoir pour le lycée en python que je dois rendre lundi et impossible de le faire. Je compte sur votre aide.
Le sujet :
Ecrire un algorithme permettant de décomposer un entier non nul en somme de puissances de 2 distincte 2 à 2 ( justifier qu'il s’arrête). Par ex: 21 = 2^4 +2^2 +2^0.

Ou j'en suis :
n = int(input("Entier N "))
i = 0
Liste = []
while (n != 0):
    while (2^i < n):
        i = i + 1
    i = i - 1
    n = n-2^i
    print (i)
    Liste.append(i)
    i = 0
print(i)
Liste[:]        


L’idéal serai que j'arrive a mettre toutes les puissance dans une liste et que j'affiche cette liste. Mais c'est vraiment l'idéal.....
Merci beaucoup a ceux qui m'aideront

2 réponses

Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
554
Bonjour

marquer Urgent ne fera pas lire plus vite le bénévole qui pourrait avoir envie de t'aider.
Pire, beaucoup vont se dire (dont moi), "il avait qu'à s'y prendre en temps et en heure" et même pas ouvrir ton post.

Je t'ai lu non par envie, mais pour signaler qu'en plus tu as posté en double....

Mais du coup, j'ai vu que tu as travaillé par toi-même et que lundi c'est pas si urgent que ça.
Alors, je me permets de modifier ton titre.

Pour ton problème, sais tu comment on fait un changement de base décimale vers binaire?

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019

désolé pour le urgent s'il etais de trop.
Mais non je ne vois pas de quoi tu parles....
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
554
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019

ah oui, mais le faire sur "papier" je sais le faire mais je ne comprends pas sque je dois ajouter a mon programme
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019

from math import *
 
n = int(input("Entrez un nombre "))
a = n
Liste = []
while (n != 0):
    i = 0
    while (2**i <= n):
        i = i + 1
    i = i - 1
    n = n-2**i
    Liste.append(2**i)
print("Les puissances  de 2 composant le nombre ", a ,"sont")
print( Liste)


J'ai essayé un programme mais la il affiche la valeur de 2^x et non x . Une idée?
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
554
Liste.append(2**i)
ici tu stockes la valeur de 2^i et pas i
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019
>
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020

merci ! quelle erreur débile !
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
554
Non d’inattention
Bonne soirée