3957 - Countercase: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerință == Dându-se un număr natural n să se afle câte numere se pot obține folosind biții acestuia. Un număr natural x se obține folosind biții lui n dacă mulțimea biților setați ai lui x este inclusă în mulțimea biților setați ai lui n. De exemplu, pentru n = 5 reprezentarea binară este 101; x poate lua valorile 101, 100, 001, 000, adică 5, 4, 1, 0. == Date de intrare == Programul citește de la tastatură numărul n. == Date de ieșire == Programul...
 
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Cerință ==
== Cerință ==
Dându-se un număr natural n să se afle câte numere se pot obține folosind biții acestuia.
Dându-se un număr natural '''n''' să se afle câte numere se pot obține folosind biții acestuia.Un număr natural x se obține folosind biții lui '''n''' dacă mulțimea biților setați ai lui x este inclusă în mulțimea biților setați ai lui '''n'''. De exemplu, pentru n = 5 reprezentarea binară este 101; x poate lua valorile 101, 100, 001, 000, adică 5, 4, 1, 0.
Un număr natural x se obține folosind biții lui n dacă mulțimea biților setați ai lui x este inclusă în mulțimea biților setați ai lui n. De exemplu, pentru n = 5 reprezentarea binară este 101; x poate lua valorile 101, 100, 001, 000, adică 5, 4, 1, 0.
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul n.
Programul citește de la tastatură numărul '''n'''.
== Date de ieșire ==
== Date de ieșire ==
Programul va afișa pe ecran valoarea cerută.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran valoarea cerută. Î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 ==
*n are cel mult 500 de cifre
*'''n''' are cel mult 500 de cifre
== Exemplul 1==
==Exemplu==
=== Exemplul 1===
; Intrare
; Intrare
: 5
: 5
Line 14: Line 15:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 4
: 4
==Rezolvare==
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    # Funcție pentru validarea numărului de intrare
    # Returnează True dacă numărul este valid, False în caz contrar
    return n.isdigit() and int(n) <= 500
def counterase(n):
    # Funcție pentru calcularea numărului de numere posibile
    numar_posibil = 0
    for x in range(n + 1):
        if x & n == x:
            # Verificare dacă x & n == x, adică x reprezintă un submulțime a lui n în reprezentarea binară
            numar_posibil += 1
    print("Numarul de numere posibile este:", numar_posibil)
if __name__ == '__main__':
    n = input("Introduceti numarul n: ") # Citirea numărului de la tastatură
    if validare(n): # Verificare validitate numărului utilizând funcția validare()
        n = int(n) # Convertirea valorii numărului la tipul int
        print("Datele introduse corespund restricțiilor impuse.")
        counterase(n) # Apelarea funcției counterase() pentru calcularea numărului de numere posibile
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>

Latest revision as of 08:54, 25 April 2023

Cerință[edit | edit source]

Dându-se un număr natural n să se afle câte numere se pot obține folosind biții acestuia.Un număr natural x se obține folosind biții lui n dacă mulțimea biților setați ai lui x este inclusă în mulțimea biților setați ai lui n. De exemplu, pentru n = 5 reprezentarea binară este 101; x poate lua valorile 101, 100, 001, 000, adică 5, 4, 1, 0.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

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." și programul va afișa pe ecran valoarea cerută. Î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]

  • n are cel mult 500 de cifre

Exemplu[edit | edit source]

Exemplul 1[edit | edit source]

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
4

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   # Funcție pentru validarea numărului de intrare
   # Returnează True dacă numărul este valid, False în caz contrar
   return n.isdigit() and int(n) <= 500


def counterase(n):

   # Funcție pentru calcularea numărului de numere posibile
   numar_posibil = 0
   for x in range(n + 1):
       if x & n == x:
           # Verificare dacă x & n == x, adică x reprezintă un submulțime a lui n în reprezentarea binară
           numar_posibil += 1
   print("Numarul de numere posibile este:", numar_posibil)


if __name__ == '__main__':

   n = input("Introduceti numarul n: ") # Citirea numărului de la tastatură
   if validare(n): # Verificare validitate numărului utilizând funcția validare()
       n = int(n) # Convertirea valorii numărului la tipul int
       print("Datele introduse corespund restricțiilor impuse.")
       counterase(n) # Apelarea funcției counterase() pentru calcularea numărului de numere posibile
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")


</syntaxhighlight>