3247 - subimp1
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.")
- 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>