3348 - Suma Puteri 2: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Se dă un număr natural n. Descompuneți numărul n ca sumă de puteri ale lui 2. ==Date de intrare== Programul citește de la tastatură numărul n. ==Date de ieșire== Programul va afișa pe ecran, în ordine crescătoare, separate prin câte un spațiu, puterile lui 2 care au suma n. ==Restricții de precizări== *1 ⩽ n ⩽ 2^31 ==Exemplul 1== ;Intrare :43 ;Ieșire :Datele introduse corespund restricțiilor impuse. :1 :2 :8 :32 == Rezolvare ==...
 
No edit summary
Line 1: Line 1:


==Cerință==
==Cerință==
Se dă un număr natural n. Descompuneți numărul n ca sumă de puteri ale lui 2.
Se dă un număr natural '''n'''. Descompuneți numărul '''n''' ca sumă de puteri ale lui 2.
==Date de intrare==
==Date de intrare==
Programul citește de la tastatură numărul n.
Programul citește de la tastatură numărul '''n'''.
==Date de ieșire==
==Date de ieșire==
Programul va afișa pe ecran, în ordine crescătoare, separate prin câte un spațiu, puterile lui 2 care au suma n.
Programul va afișa pe ecran, în ordine crescătoare, separate prin câte un spațiu, puterile lui 2 care au suma '''n'''.
==Restricții de precizări==
==Restricții de precizări==
*1 ⩽ n ⩽ 2^31
*1 ⩽ '''n''' ⩽ 2^31
==Exemplul 1==
==Exemplul 1==
;Intrare
;Intrare
Line 27: Line 27:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def main():
   
n = int(input("Introduceți numărul n: "))
n = int(input("Introduceți numărul n: "))
puteri = []
for i in range(0, n.bit_length()):
    if n & (1 << i):
        puteri.append(2**i)
print(*puteri)


puteri_de_2 = []
putere_curenta = 1
while n > 0:
    if n % 2 == 1:
        puteri_de_2.append(putere_curenta)
    putere_curenta += 1
    n //= 2
print("Descompunerea numărului în puteri ale lui 2 este:", puteri_de_2)
</syntaxhighlight>
</syntaxhighlight>

Revision as of 12:13, 15 March 2023

Cerință

Se dă un număr natural n. Descompuneți numărul n ca sumă de puteri ale lui 2.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran, în ordine crescătoare, separate prin câte un spațiu, puterile lui 2 care au suma n.

Restricții de precizări

  • 1 ⩽ n ⩽ 2^31

Exemplul 1

Intrare
43
Ieșire
Datele introduse corespund restricțiilor impuse.
1
2
8
32

Rezolvare

<syntaxhighlight lang="python" line="1" start="1"> def main():

n = int(input("Introduceți numărul n: "))

puteri_de_2 = [] putere_curenta = 1

while n > 0:

   if n % 2 == 1:
       puteri_de_2.append(putere_curenta)
   putere_curenta += 1
   n //= 2

print("Descompunerea numărului în puteri ale lui 2 este:", puteri_de_2) </syntaxhighlight>