3922 - back abc1: Difference between revisions
Pagină nouă: = Cerința = Se citesc două numere naturale <code>n</code> și <code>m</code>. Afișați în ordine lexicografică toate cuvintele care sunt formate din <code>m</code> litere folosind primele <code>n</code> litere mari din alfabet și care au literele ordonate alfabetic strict crescător. = Date de intrare = Programul citește de la tastatură numerele <code>n</code> și <code>m</code>, separate prin spații. = Date de ieșire = Programul va afișa pe ecran pe linii separa... |
am adaugat explicatia |
||
Line 27: | Line 27: | ||
BDE | BDE | ||
CDE | CDE | ||
== Explicație == | |||
Primele 5 litere mari sunt {A,B,C,D,E} și se formează cuvinte cu 3 litere având literele ordonate alfabetic. | |||
== Exemplul 2 == | == Exemplul 2 == |
Latest revision as of 21:44, 9 December 2023
Cerința[edit | edit source]
Se citesc două numere naturale n
și m
. Afișați în ordine lexicografică toate cuvintele care sunt formate din m
litere folosind primele n
litere mari din alfabet și care au literele ordonate alfabetic strict crescător.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n
și m
, separate prin spații.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran pe linii separate cuvintele cerute. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 26
,0 ≤ m ≤ 10
m ≤ n
Exemplul 1[edit | edit source]
Intrare
5 3
Ieșire
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
Explicație[edit | edit source]
Primele 5 litere mari sunt {A,B,C,D,E} și se formează cuvinte cu 3 litere având literele ordonate alfabetic.
Exemplul 2[edit | edit source]
Intrare
5 7
consola
Nu corespunde restricțiilor
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> from itertools import combinations
def generate_words(n, m):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' letters = alphabet[:n]
for combination in combinations(letters, m): word = .join(sorted(combination)) print(word)
def check_restrictions(n, m):
if 1 <= n <= 26 and 0 <= m <= 10 and m <= n: return True else: print("Nu corespunde restricțiilor") return False
- Citirea datelor de intrare
n, m = map(int, input("Introduceți n și m (separate prin spații): ").split())
- Verificarea restricțiilor și generarea cuvintelor
if check_restrictions(n, m):
generate_words(n, m)
</syntaxhighlight>