3247 - subimp1

From Bitnami MediaWiki
Revision as of 19:49, 9 December 2023 by Hotico Iulia Denisa (talk | contribs) (→‎Exemplul 1)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

Se citește un număr natural n. Afișați în ordine lexicografică toate submulțimile mulțimii {1, 2, ..., n} care sunt formate dintr-un număr impar de elemente.

Date de intrare[edit | edit source]

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

Date de ieșire[edit | edit source]

Programul va afișa pe ecran submulțimile cerute, câte una pe fiecare rand și având elementele separate prin câte un spaţiu. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 19

Exemplul 1[edit | edit source]

Intrare

4

Ieșire

1 
1 2 3 
1 2 4 
1 3 4 
2 
2 3 4 
3 
4

Exemplul 2[edit | edit source]

Intrare

66

consola

Nu corespunde restricțiilor

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1"> def verifica_restricții(n):

   return 1 <= n <= 19

def generare_submultimi(curent, start, end, rezultat):

   if start > end:
       return
   for i in range(start, end + 1):
       curent.append(i)
       rezultat.append(list(curent))
       generare_submultimi(curent, i + 1, end, rezultat)
       curent.pop()

def afisare_submultimi_impare(n):

   # Verificare restricții folosind funcția separată
   if verifica_restricții(n):
       submultimi = []
       generare_submultimi([], 1, n, submultimi)
       print("Submulțimile cu un număr impar de elemente:")
       for submultime in submultimi:
           if len(submultime) % 2 == 1:
               print(*submultime)
   else:
       print("Nu corespunde restricțiilor.")
  1. Citirea datelor de intrare

try:

   n = int(input("Introduceți un număr natural n: "))
   afisare_submultimi_impare(n)

except ValueError:

   print("Introduceți un număr valid.")

</syntaxhighlight>