3957 - Countercase: Difference between revisions

From Bitnami MediaWiki
Line 18: Line 18:
=== Rezolvare ver. 1 ===
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare(n, numbers):
 
def validare(n):
     return n.isdigit() and int(n) <= 500
     return n.isdigit() and int(n) <= 500


Line 25: Line 26:
     numar_posibil = 0
     numar_posibil = 0


     for x in range(n+1):
     for x in range(n + 1):
         if x & n == x:
         if x & n == x:
             numar_posibil += 1
             numar_posibil += 1
Line 33: Line 34:


if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceti numarul n: "))
     n = input("Introduceti numarul n: ")
 
    if validare(n):
if validare(n):
        n = int(n)
    n = int(n)
        print("Datele introduse corespund restricțiilor impuse.")
    print("Datele introduse corespund restricțiilor impuse.")
        counterase(n)
    counterase(n)


else:
    else:
    print("Datele introduse nu corespund restricțiilor impuse.")
        print("Datele introduse nu corespund restricțiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Revision as of 20:47, 23 March 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

Programul va afișa pe ecran valoarea cerută.

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):

   return n.isdigit() and int(n) <= 500


def counterase(n):

   numar_posibil = 0
   for x in range(n + 1):
       if x & n == x:
           numar_posibil += 1
   print("Numarul de numere posibile este:", numar_posibil)


if __name__ == '__main__':

   n = input("Introduceti numarul n: ")
   if validare(n):
       n = int(n)
       print("Datele introduse corespund restricțiilor impuse.")
       counterase(n)
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>