1812 - Litere Gen 1: Difference between revisions
Pagină nouă: ==Cerința== Scrieți un program care citeşte o valoare naturală impară pentru n şi apoi generează şi afişează în ordine crescătoare lexicografic toate combinaţiile formate din n litere mici care îndeplinesc următoarele proprietăţi: - încep şi se termină cu a; - oricare două litere alăturate dintr-o combinaţie sunt consecutive în alfabet. Astfel, pentru n=5, combinaţiile afişate sunt, în ordine, următoarele: ababa, abcba. ==Date de intrare== Progra... |
No edit summary |
||
Line 23: | Line 23: | ||
abcba | abcba | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python3" line="1"> | |||
def generate_combinations(current, n): | def generate_combinations(current, n): | ||
if len(current) == n: | |||
print("".join(current)) | |||
return | |||
if not current: | |||
current.append('a') | |||
generate_combinations(current, n) | |||
current.pop() | |||
for char in range(ord('b'), ord('a') + n): | |||
current.append(chr(char)) | |||
generate_combinations(current, n) | |||
current.pop() | |||
Citirea datelor de intrare | |||
n = int(input("Introduceți n (număr impar): ")) | n = int(input("Introduceți n (număr impar): ")) | ||
if | if n % 2 == 0: | ||
print("Numărul introdus trebuie să fie impar.") | |||
else: | else: | ||
# Generarea și afișarea combinațiilor | |||
generate_combinations([], n) | |||
</syntaxhighlight> |
Latest revision as of 18:18, 11 January 2024
Cerința[edit | edit source]
Scrieți un program care citeşte o valoare naturală impară pentru n şi apoi generează şi afişează în ordine crescătoare lexicografic toate combinaţiile formate din n litere mici care îndeplinesc următoarele proprietăţi:
- încep şi se termină cu a; - oricare două litere alăturate dintr-o combinaţie sunt consecutive în alfabet. Astfel, pentru n=5, combinaţiile afişate sunt, în ordine, următoarele: ababa, abcba.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, impar.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran, pe rânduri separate, combinaţiile care îndeplinesc proprietăţile cerute.
Restricții și precizări[edit | edit source]
3 ≤ n ≤ 25 ==Exemplu==: Intrare
5 Ieșire
ababa abcba
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def generate_combinations(current, n):
if len(current) == n: print("".join(current)) return if not current: current.append('a') generate_combinations(current, n) current.pop() for char in range(ord('b'), ord('a') + n): current.append(chr(char)) generate_combinations(current, n) current.pop()
Citirea datelor de intrare
n = int(input("Introduceți n (număr impar): "))
if n % 2 == 0:
print("Numărul introdus trebuie să fie impar.")
else:
# Generarea și afișarea combinațiilor generate_combinations([], n)
</syntaxhighlight>