2672 - Primul bit
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>