3957 - Countercase: Difference between revisions
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 == | ||
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>