2672 - Primul bit: Difference between revisions
mNo edit summary |
Vardai Erwin (talk | contribs) |
||
(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>