2672 - Primul bit: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: <nowiki>== Cerință ==</nowiki> În reprezentarea în baza 2 a unui număr natural: <nowiki>*</nowiki>primul bit (cel mai din stânga) este cel mai semnificativ, ultimul bit este cel mai puțin semnificativ; <nowiki>*</nowiki>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. <nowiki>== Date de intrare ==</nowiki> Programul citește de la tastatură numărul <co...
 
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<nowiki>== Cerință ==</nowiki>
== Cerință ==
 
În reprezentarea în baza 2 a unui număr natural:
Î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 ==
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."


<nowiki>*</nowiki>primul bit (cel mai din stânga) este cel mai semnificativ, ultimul bit este cel mai puțin semnificativ;
== Restricții de precizări ==
 
*valoarea lui '''n''' se poate reprezenta pe 64 de biți, fără semn;
<nowiki>*</nowiki>biții se numerotează de la dreapta la stânga, începând de la 0.
== Exemplul 1==
 
; Intrare
Se citește numărul n. Să se determine numărul de ordine al celui mai semnificativ bit.
: 5
 
; Ieșire
<nowiki>== Date de intrare ==</nowiki>
: Datele introduse corespund restricțiilor impuse.
 
: 2
Programul citește de la tastatură numărul <code>n</code> într-o variabilă de tip întreg pe <code>64</code> de biți fără semn.
== Exemplul 2 ==
 
; Intrare
<nowiki>== Date de ieșire ==</nowiki>
: 23
 
; Ieșire
Programul va afișa pe ecran poziția primului bit a lui <code>n</code> de la stânga la dreapta
: Datele introduse corespund restricțiilor impuse.
 
: 4
<nowiki>== Restricții de precizări ==</nowiki>
== Rezolvare ver. 1 ==
 
<syntaxhighlight lang="python" line="1" start="1">
<nowiki>*</nowiki>valoarea lui n se poate reprezenta pe 64 de biți, fără semn;
def validare(n):
 
    return n.isdigit()
<nowiki>== Exemplul 1==</nowiki>
 
<nowiki>;</nowiki> Intrare
 
<nowiki>:</nowiki> 5
 
<nowiki>;</nowiki> Ieșire


<nowiki>:</nowiki> Datele introduse corespund restricțiilor impuse.


<nowiki>:</nowiki> 2
def primulbit(n):
    # initializam variabila bit cu valoarea 0
    bit = 0


<nowiki>== Exemplul 2 ==</nowiki>
    # 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


<nowiki>;</nowiki> Intrare
    # afisam valoarea variabilei bit
    print(bit)


<nowiki>:</nowiki> 23


<nowiki>;</nowiki> Ieșire
if __name__ == "__main__":
    n = input()  # citim numarul
    if validare(n):
        n = int(n)


<nowiki>:</nowiki> Datele introduse corespund restricțiilor impuse.
        print("Datele introduse corespund restricțiilor impuse.")
        primulbit(n)


<nowiki>:</nowiki> 4
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")


<nowiki>== Rezolvare ver. 1 ==</nowiki>
</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>