3247 - subimp1

From Bitnami MediaWiki
Revision as of 19:36, 4 December 2023 by Gabii (talk | contribs) (Pagină nouă: = Cerința = Se citește un număr natural <code>n</code>. Afișați în ordine lexicografică toate submulțimile mulțimii <code>{1, 2, ..., n}</code> care sunt formate dintr-un număr impar de elemente. = Date de intrare = Programul citește de la tastatură numărul <code>n</code>. = Date de ieșire = 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

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

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

Date de ieșire

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

  • 1 ≤ n ≤ 19

Exemplul 1

Intrare

4

Ieșire

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

Exemplul 1

Intrare

4

consola

"Nu corespunde restricțiilor"

Rezolvare

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