2672 - Primul bit: Difference between revisions
No edit summary |
Vardai Erwin (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
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; | ||
Line 25: | Line 26: | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n): | def validare(n): | ||
return n.isdigit() | return n.isdigit() | ||
def primulbit(n): | def primulbit(n): | ||
# initializam variabila bit cu valoarea 0 | # initializam variabila bit cu valoarea 0 | ||
bit = 0 | bit = 0 | ||
Line 38: | Line 38: | ||
bit += 1 | bit += 1 | ||
# afisam valoarea variabilei bit | |||
print(bit) | print(bit) | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = | n = input() # citim numarul | ||
if validare(n): | |||
n = int(n) | |||
if validare(n): | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
primulbit(n) | |||
else: | else: | ||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </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>