1287 - CifreGen

De la Universitas MediaWiki

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

5 3 10

consola

"Nu corespunde restricțiilor".

Rezolvare

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

# Citirea datelor de intrare
a = int(input("Introduceți a: "))
b = int(input("Introduceți b: "))
n = int(input("Introduceți n: "))

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