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ță

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

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

  • n are cel mult 500 de cifre

Exemplu

Exemplul 1

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
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>