1812 - Litere Gen 1: Difference between revisions

From Bitnami MediaWiki
Mraa (talk | contribs)
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...
 
Mraa (talk | contribs)
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:
  if len(current) == n:
        current.append('a')
      print("".join(current))
        generate_combinations(current, n)
      return
        current.pop()
  if not current:
   
      current.append('a')
    for char in range(ord('b'), ord('a') + n):
      generate_combinations(current, n)
        current.append(chr(char))
      current.pop()
        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


# Citirea datelor de intrare
n = int(input("Introduceți n (număr impar): "))
n = int(input("Introduceți n (număr impar): "))


if n % 2 == 0:
if % 2 == 0:
    print("Numărul introdus trebuie să fie impar.")
 
  print("Numărul introdus trebuie să fie impar.")
 
else:
else:
    # Generarea și afișarea combinațiilor
 
    generate_combinations([], n)
  # 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>