Bonjour,j'ai fait un devoir de mathématiques où l'on me demandait de créer un algorithme.
Voici l'énoncé :
1.On se donne un entier naturel N. Écrire un algorithme qui donne la plus grande puissance k de 2 tel que
N ≥ 2k . Tester votre algorithme sur N = 213.
2.Utiliser votre algorithme pour écrire N = 213 comme une somme de puissance de 2.
Je ne sais ni programmer car je débute tout juste en python... J'ai bien la logique sur le papier mais je bute sur la syntaxe... Quelqu'un pourrait m'aider
Donner la valeur de N
Donner à k la valeur 0
Tant que 2k≤N,
Faire : donner à k la valeur k+1
Fin de Faire
Fin de Tant que
Afficher (k-1)
Pour N=213,k=7
213−2 ^7=85 donc
213=2^7+85
Tu continues.
Tu utilises l'algorithme
Pour N=85, k=6.
85-2^6=21 donc
213=2^7+2^6+21
Tu continues
Tu utilises l'algorithme pour
N=21, k=4.
21-2^4=5 donc
213=2^7+2^6+2^4 +5
Tu continues
N=5, K=2
5-2^2=1 donc
213=2^7+2^6+2^4 +2^2+1
Tu continues
N=1, K=0
1-2^0=0 donc
213=2^7+2^6+2^4 +2^2+2^0
Il va renvoyer donc la liste des puissances :
[7,6,4,2,0]
je ne comprends pas ta réponse : c'est un copié collé de quoi ?
Qu'est ce qui vient de toi ?
Q1 : ce que tu fais est correct (ça n'est pas en python... ). Effectivement, pour n=213, k vaut 7.
Q2 : on ne te demande pas la listes des puissances, mais d'écrire 213 comme une somme des puissances de 2..
Selon l'énoncé, c'est 2k et non 2k.
Un algorithme pourrait alors être :
p prend 2
k prend1
tant que 213>=p faire
k=k+1
p=2*p
afficher(k-1)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :