1569 - Scara Numerelor

De la Universitas MediaWiki

Cerința

Se citește un număr natural n</span.. Să se afișeze o figură similară cu cea din exemplu.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul va afișa figura, similar cu exemplul. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".

Restricții și precizări

1 ≤ n ≤ 9

Exemplu:

Intrare

3

Ieșire

Date de intrare valide
1
22
22
333
333
333

Explicație

Cifra 1 s-a afisat o singura data, pe un singur rand. Cifra 2 s-a afista de 2 ori, pe 2 randuri. Cifra 3 s-a afisat de 3 ori, pe 3 randuri.

Rezolvare

def validare_date(n):
    """
    Verifică dacă numărul n este între 1 și 9.
    """
    if 1 <= n <= 9:
        return True
    else:
        print("Numărul trebuie să fie între 1 și 9.")
        return False

def print_figure(n):
    """
    Afișează cifrele de la 1 la n pe câte n rânduri.
    """
    for i in range(1, n + 1):
        for j in range(1, i + 1):
            for k in range(1, i + 1):
                print(i, end='')
            print()


if __name__ == "__main__":
    n = int(input("Introduceți un număr natural n: "))
    if validare_date(n):
        print("Date de intrare valide")
        print_figure(n)
    else:
        print("Date de intrare invalide")

Explicatie cod:

Funcția validare_date(n) verifică dacă valoarea n este un număr valid pentru a rezolva problema dată. Verifică dacă n se află în intervalul [1, 9]. Dacă este în intervalul valid, funcția returnează True. În caz contrar, se afișează un mesaj de eroare și funcția returnează False. Funcția print_figure(n) rezolvă problema și afișează cifrele de la 1 la n într-un model specific. Funcția utilizează trei bucle for pentru a controla afișarea în modelul dorit. Cu fiecare iterație, se afișează rândul respectiv de cifre. La fiecare iterație a celei de-a doua bucle for, se afișează valoarea cifrei i de i ori, iar la fiecare iterație a celei de-a treia bucle for, se afișează numărul i pe un rând nou. În blocul if __name__ == "__main__":, se citește valoarea n de la utilizator utilizând funcția input() și se verifică dacă valoarea introdusă este validă utilizând funcția validare_date(n). Dacă nu este validă, se afișează un mesaj de eroare și se cere introducerea unei valori valide. Dacă valoarea introdusă este validă, se apelează funcția print_figure(n) pentru a rezolva problema și a afișa cifrele în modelul specific.