1287 - CifreGen

From Bitnami MediaWiki
Revision as of 21:04, 4 December 2023 by 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

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

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

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 corespunde restricțiilor".

Restricții și precizări

  • 1 ≤ n ≤ 8
  • 0 < a < b < 10

Exemplul 1

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

Intrare

3 5 3

consola

"Nu corespunde restricțiilor".

Rezolvare

<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>