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)