1812 - Litere Gen 1
De la Universitas MediaWiki
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
Programul citește de la tastatură numărul n, impar.
Date de ieșire
Programul va afișa pe ecran, pe rânduri separate, combinaţiile care îndeplinesc proprietăţile cerute.
Restricții și precizări
3 ≤ n ≤ 25 ==Exemplu==: Intrare
5 Ieșire
ababa abcba
Rezolvare
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)