2672 - Primul bit: Difference between revisions

From Bitnami MediaWiki
 
Line 7: Line 7:
Programul citește de la tastatură numărul '''n''' într-o variabilă de tip întreg pe 64 de biți fără semn.
Programul citește de la tastatură numărul '''n''' într-o variabilă de tip întreg pe 64 de biți fără semn.
== Date de ieșire ==
== Date de ieșire ==
Programul va afișa pe ecran poziția primului bit a lui '''n''' de la stânga la dreapta
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran poziția primului bit a lui '''n''' de la stânga la dreapta. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
 
== Restricții de precizări ==
== Restricții de precizări ==
*valoarea lui '''n''' se poate reprezenta pe 64 de biți, fără semn;
*valoarea lui '''n''' se poate reprezenta pe 64 de biți, fără semn;

Latest revision as of 19:58, 24 April 2023

Cerință[edit]

În reprezentarea în baza 2 a unui număr natural:

  • primul bit (cel mai din stânga) este cel mai semnificativ, ultimul bit este cel mai puțin semnifica-tiv;
  • biții se numerotează de la dreapta la stânga, începând de la 0.

Se citește numărul n. Să se determine numărul de ordine al celui mai semnificativ bit.

Date de intrare[edit]

Programul citește de la tastatură numărul n într-o variabilă de tip întreg pe 64 de biți fără semn.

Date de ieșire[edit]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran poziția primului bit a lui n de la stânga la dreapta. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări[edit]

  • valoarea lui n se poate reprezenta pe 64 de biți, fără semn;

Exemplul 1[edit]

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
2

Exemplul 2[edit]

Intrare
23
Ieșire
Datele introduse corespund restricțiilor impuse.
4

Rezolvare ver. 1[edit]

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

   return n.isdigit() 


def primulbit(n):

   # initializam variabila bit cu valoarea 0
   bit = 0
   # cat timp numarul este mai mare decat 1, il impartim la 2 si incrementam variabila bit cu 1
   while n > 1:
       n //= 2
       bit += 1
   # afisam valoarea variabilei bit
   print(bit)


if __name__ == "__main__":

   n = input()  # citim numarul
   if validare(n):
       n = int(n)
       print("Datele introduse corespund restricțiilor impuse.")
       primulbit(n)
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>