2672 - Primul bit: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 3: Line 3:
*primul bit (cel mai din stânga) este cel mai semnificativ, ultimul bit este cel mai puțin semnifica-tiv;
*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.
*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.
Se citește numărul '''n'''. Să se determine numărul de ordine al celui mai semnificativ bit.
== Date de intrare ==
== Date de intrare ==
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;
== Exemplul 1==
== Exemplul 1==
; Intrare
; Intrare
Line 23: Line 24:
: 4
: 4
== Rezolvare ver. 1 ==
== Rezolvare ver. 1 ==
<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>

Latest revision as of 19:58, 24 April 2023

Cerință[edit | edit source]

Î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 | edit source]

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 | edit source]

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 | edit source]

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

Exemplul 1[edit | edit source]

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

Exemplul 2[edit | edit source]

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

Rezolvare ver. 1[edit | edit source]

<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>