2672 - Primul bit: Diferență între versiuni

De la Universitas 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...)
 
 
(Nu s-au afișat 3 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 1: Linia 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>

Versiunea curentă din 24 aprilie 2023 19:58

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

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

  • 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() 


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.")