2672 - Primul bit: Diferență între versiuni
De la Universitas MediaWiki
mFără descriere a modificării |
Fără descriere a modificării |
||
Linia 3: | Linia 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 | Programul va afișa pe ecran poziția primului bit a lui '''n''' de la stânga la dreapta | ||
== 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 | ||
Linia 23: | Linia 23: | ||
: 4 | : 4 | ||
== Rezolvare ver. 1 == | == Rezolvare ver. 1 == | ||
<syntaxhighlight lang="python" line="1" start="1"> | |||
def validare(n): | |||
return n.isdigit() and 0 <= int(n) <= 63 | |||
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 = int(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> |
Versiunea de la data 11 aprilie 2023 07:42
Cerință
Î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
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
Programul va afișa pe ecran poziția primului bit a lui n de la stânga la dreapta
Restricții de precizări
- valoarea lui n se poate reprezenta pe 64 de biți, fără semn;
Exemplul 1
- Intrare
- 5
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 2
Exemplul 2
- Intrare
- 23
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Rezolvare ver. 1
def validare(n):
return n.isdigit() and 0 <= int(n) <= 63
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 = int(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.")