1287 - CifreGen

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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)