1287 - CifreGen: Difference between revisions

From Bitnami MediaWiki
Gabii (talk | contribs)
Pagină nouă: = Cerința = Se dau două cifre <code>a b</code> și un număr <code>n</code>. Să se genereze toate numerele cu exact <code>n</code> cifre cuprinse între <code>a</code> și <code>b</code>. = Date de intrare = Programul citește de la tastatură numerele <code>a b n</code>. = Date de ieșire = Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespun...
 
Gabii (talk | contribs)
No edit summary
 
Line 47: Line 47:
= Exemplul 2 =
= Exemplul 2 =
Intrare
Intrare
  3 5 3
  5 3 10
consola
consola
  "Nu corespunde restricțiilor".
  "Nu corespunde restricțiilor".

Latest revision as of 21:05, 4 December 2023

Cerința[edit | edit source]

Se dau două cifre a b și un număr n. Să se genereze toate numerele cu exact n cifre cuprinse între a și b.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele a b n.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare. Î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 ≤ 8
  • 0 < a < b < 10

Exemplul 1[edit | edit source]

Intrare

3 5 3

Ieșire

333
334
335
343
344
345
353
354
355
433
434
435
443
444
445
453
454
455
533
534
535
543
544
545
553
554
555

Exemplul 2[edit | edit source]

Intrare

5 3 10

consola

"Nu corespunde restricțiilor".

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1"> def validate_restrictions(a, b, n):

   if 1 <= n <= 8 and 0 < a < b < 10:
       return True
   else:
       print("Nu corespunde restricțiilor")
       return False
  1. Citirea datelor de intrare

a = int(input("Introduceți a: ")) b = int(input("Introduceți b: ")) n = int(input("Introduceți n: "))

  1. Validarea restricțiilor

if validate_restrictions(a, b, n):

   # Generarea și afișarea numerelor
   def generate_numbers(current_number, remaining_digits):
       if remaining_digits == 0:
           print(current_number)
           return
       for digit in range(a, b+1):
           generate_numbers(current_number * 10 + digit, remaining_digits - 1)
   for starting_digit in range(a, b+1):  
       generate_numbers(starting_digit, n - 1)

</syntaxhighlight>