Puissance de 2 [Résolu]

Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019
-
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
13849
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
22 octobre 2019
403
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 65020 internautes nous ont dit merci ce mois-ci

Anat94
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....
Commenter la réponse de Whismeril
Messages postés
13849
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
22 octobre 2019
403
Anat94
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
Anat94
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?
Whismeril
Messages postés
13849
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
22 octobre 2019
403 -
Liste.append(2**i)
ici tu stockes la valeur de 2^i et pas i
Anat94
Messages postés
22
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
7 octobre 2019
> Whismeril
Messages postés
13849
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
22 octobre 2019
-
merci ! quelle erreur débile !
Whismeril
Messages postés
13849
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
22 octobre 2019
403 -
Non d’inattention
Bonne soirée
Commenter la réponse de Whismeril